小编dan*_*anh的帖子

Rails多对多存在查询

ruby-noob活动记录查询问题的种类:

Magazine
  has_many :subscriptions

User
  has_many :subscriptions

Subscription
  belongs_to :user
  belongs_to :magazine
Run Code Online (Sandbox Code Playgroud)

在控制器中,我想有效地询问current_user是否订阅a_magazine。我认为应该是以下内容...

Subscription.where("user_id = ? and magazine_id = ?", current_user.id, a_magazine.id).count > 0
Run Code Online (Sandbox Code Playgroud)

a)看起来正确吗?b)是否有更有效的方法(假设FK上有索引)c)从风格上来说,是否有更可接受或更简洁的方法?

提前致谢...

ruby sql activerecord ruby-on-rails

5
推荐指数
1
解决办法
2521
查看次数

jsSHA,CryptoJS和OpenSSL库给出了不同的结果

JS的新手,我也学习使用加密库.我不明白为什么使用相同的秘密签署/编码相同的消息会产生不同的结果.

我使用jsSHA 1.3.1这里找到,而这里所描述CryptoJS 3.0.2试图建立一个base64的SHA-1编码的HMAC签名.这是代码:

在HTML ...

<script src="lib/jsSHA/src/sha1.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha1.js"></script>
Run Code Online (Sandbox Code Playgroud)

在js ...

var message = "shah me";
var secret = "hide me";
var crypto = CryptoJS.HmacSHA1(message, secret).toString(CryptoJS.enc.Base64) + '=';

var shaObj = new jsSHA(message, "ASCII");
var jssha = shaObj.getHMAC(secret, "ASCII", "B64") + '=';

return  "crypto answer is " + crypto + " jssha answer is " + jssha;
Run Code Online (Sandbox Code Playgroud)

你能帮我解释一下这些结果有何不同吗?

加密答案是3e929e69920fb7d423f816bfcd6654484f1f6d56 = jssha答案是PpKeaZIPt9Qj + Ba/zWZUSE8fbVY =

更重要的是,这两者都与我在轨道中生成的签名不同,就像这样......

digest  = OpenSSL::Digest::Digest.new('sha1')
raw_signature = OpenSSL::HMAC.digest(digest, "hide me","shah me")
b64_signature …
Run Code Online (Sandbox Code Playgroud)

javascript cryptography sha1 hmac

5
推荐指数
1
解决办法
6147
查看次数

包括本地和远程JavaScript库

我正在使用我在这里下载的 jsSHA 1.3.1,并在我的localhost上用于学习项目.它的结果与我通过引用遥控器获得的副本略有不同,如下所示:

<script src="https://raw.github.com/Caligatio/jsSHA/master/src/sha1.js"></script>
Run Code Online (Sandbox Code Playgroud)

由于@Andreas 在这里的出色答案,远程拷贝对我来说效果很好.

但它给我留下了一个新问题:包含副本与引用远程js库的理由是什么?它是否像'销售'库一样,使我的应用程序与代码中的后续更改隔离开来?

javascript sha

5
推荐指数
1
解决办法
3568
查看次数

类跟踪和使用NSSet限制实例

我希望我的类检测到一个新实例与某个现有实例等效(相对于isEqual:和hash),并且只创建唯一实例.这是我认为可以完成工作的代码,但是我担心它会做一些我无法发现的愚蠢行为......

假设它是一个NSURLRequest子类,如下所示:

// MyClass.h
@interface MyClass : NSMutableURLRequest
@end

// MyClass.m

@implementation MyClass

+ (NSMutableSet *)instances {

    static NSMutableSet *_instances;
    static dispatch_once_t once;

    dispatch_once(&once, ^{ _instances = [[NSMutableSet alloc] init];});
    return _instances;
}

- (id)initWithURL:(NSURL *)URL {

    self = [super initWithURL:URL];
    if (self) {
        if ([self.class.instances containsObject:self])
            self = [self.class.instances member:self];
        else
            [self.class.instances addObject:self];
    }
    return self;
}


// Caller.m
NSURL *urlA = [NSURL urlWithString:@"http://www.yahoo.com"];

MyClass *instance0 = [[MyClass alloc] initWithURL: urlA];
MyClass *instance1 = [[MyClass …
Run Code Online (Sandbox Code Playgroud)

objective-c ios

5
推荐指数
2
解决办法
218
查看次数

如何使用故事板呈现启动/登录视图控制器

我没有一个明确的答案,以各种形式看到这个问题.我打算在这里问一下这个问题.我的应用程序需要在启动时工作... inits,一些网络调用,登录等.我不希望我的主视图控制器工作,直到完成.这样做的好方法是什么?

要求:

  • iOS5 +,故事板,ARC.
  • 在启动工作完成之前,主vc的视图不会出现.
  • 想要在启动工作完成后选择过渡样式到主vc.
  • 想在故事板中做尽可能多的布局.
  • 代码应该干净地包含在显而易见的地方.

iphone storyboard ios appdelegate

4
推荐指数
1
解决办法
6582
查看次数

在单例上实现alloc

我想在我的系统中有一个单例,但不是让调用者通过某种'sharedInstance'方法访问它,我希望他们能够不知道他们正在使用单例,换句话说,我我希望来电者能够说:

MyClass *dontKnowItsASingleton = [[MyClass alloc] init];
Run Code Online (Sandbox Code Playgroud)

为了实现这一点,我尝试重写alloc如下:

// MyClass.m

static MyClass *_sharedInstance;

+ (id)alloc {

    if (!_sharedInstance) {
        _sharedInstance = [super alloc];
    }
    return _sharedInstance;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:这没关系吗?它似乎工作,但我从来没有覆盖alloc.另外,如果没关系,我可以一直使用这种技术,而不是我一直在做的dispatch_once方法吗?...

+ (id)sharedInstance {

    static SnappyTV *_sharedInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _sharedInstance = [[self alloc] init];
    });
    return _sharedInstance;
}
Run Code Online (Sandbox Code Playgroud)

objective-c ios

4
推荐指数
1
解决办法
640
查看次数

主干,下划线,jquery页面中的选项卡

我正在制作一个玩具应用程序,试图了解这些库,并希望了解我将如何呈现"标签"界面.我想在顶部有几个按钮(或链接,最常见的).选择一个时,它会显示为已选中,并且页面上的主要内容会更改以显示该选项卡上的内容.

我的学习应用程序目前非常简单:

<body>
    <div class="content"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

和骨干观点:

var ContentView = Backbone.View.extend({
    el: $('.content'),
    // ..
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经研究过在html中使用<%tag来制作部分内容,使得ContentView以某种方式负责在那里呈现不同的东西.我已经拥有但不太了解如何追求的另一个想法是几个Backbone视图轮流负责改变一个div.

肯定会欣赏有关规范方法的一些建议,包括如何显示标签按钮以及如何清晰地分离不同标签的视图逻辑.

javascript jquery backbone.js underscore.js single-page-application

4
推荐指数
1
解决办法
4190
查看次数

识别长按和平移手势识别器

我有一个观点,我已经添加了泛和长按UIGestureRecognizer.平底锅用于移动视图.我想做的是注意触摸已停止移动(同时保持活动状态)并触发长按.

我发现在平底锅开始后从未触发长按.我已经尝试设置委托并实现:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    NSLog(@"simultaneous %@", gestureRecognizer.class);
    return YES;
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    NSLog(@"require fail %@", gestureRecognizer.class);

    return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer self]];
    // also tried return YES;
    // also tried return [gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer self]];
}
Run Code Online (Sandbox Code Playgroud)

我试过愚弄pan gr的allowableMovement,也无济于事.我只是放弃并在pan gr中使用一个计时器,它被取消,然后重置动作,但我希望SDK能为我做状态机的东西.

uigesturerecognizer ios

4
推荐指数
1
解决办法
3756
查看次数

当设备方向发生变化时,UIViewController不会更新视图的约束

我正在创建一个可以在横向和纵向模式下使用iPad的应用程序.我的UIViewControllers的配置如下:

我有一个UIViewController具有UICollectionView以下约束的a:top,leading,trailing和bottom设置为0及其superview(superview是UIView我的UIViewController).

当我点击一个细胞,我推另一个UIViewControllerUINavigationController其是所述细胞的细节的viewController.简单.

当我在第一个视图控制器中更改设备方向时,UICollectionView正确设置边界.

这是我的问题:

如果我在中选择一个单元格,UICollectionView则会显示第二个详细信息viewController.然后,如果在第二个ViewController中我改变了设备方向然后我回到第一个viewController,我的视图UIViewController还没有被旋转.我不知道为什么,我尝试了这个没有成功:

self.view.layoutIfNeeded()viewDidAppear()我的firstViewController中根据当前方向更新约束,它不起作用.这没用,因为我注意到一件事:

我的第一个viewController的框架视图仍然与前一个方向相同,它没有改变......但是如果我再次旋转设备,UIViewController检测方向会改变,并且视图边界设置正确.

所以我的问题是:当我在第二个视图控制器中,并且我正在旋转设备,然后我回到前一个视图控制器时,之前的控制器没有检测到我刚刚在第二个视图控制器.

GIF演示:

在此输入图像描述

之后,我从纵向模式旋转到横向模式,视图 不会更改,因为调试视图层次结构工具显示如下:

在此输入图像描述

UIView仍处于肖像,因此UICollectionView约束的无法与新的方向进行更新...

有任何想法吗?

orientation ios autolayout swift

4
推荐指数
1
解决办法
1557
查看次数

UITableViewController不显示工具栏项?

我一直在谷歌上搜索这个问题.我有一个带有导航栏的表视图控制器和底部的工具栏.我能够显示工具栏

self.navigationController.toolbaHidden = NO;
Run Code Online (Sandbox Code Playgroud)

然后我像这样在工具栏中添加了一些项目

UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
button.titleLabel.text = @"Button";
UIBarButtonItem *buttonItem = [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease];
[self setToolbarItems:[NSArray arrayWithObject:buttonItem] animated:NO];
[button release];
Run Code Online (Sandbox Code Playgroud)

然而它永远不会奏效.我认为这是正确的方法,但不知何故,它在工具栏上没有显示任何内容.有谁知道原因是什么?或者,如果您知道添加工具栏项目的正确方法,请告诉我们?非常感谢你们.

干杯,

iphone uitableview uitoolbar ios

3
推荐指数
1
解决办法
2083
查看次数