传递布尔对象NO总是导致YES

C6S*_*ver 1 objective-c ios7

我试图通过选择器传递一个布尔对象.但是,即使我发送NO(Xcode 5 iOS 7),结果总是等于YES.

[self performSelectorOnMainThread:@selector(clearMessageElements:) withObject:@NO waitUntilDone:NO];


-(void)clearMessageElements:(BOOL)resetLastUpdate
Run Code Online (Sandbox Code Playgroud)

如果我在clearMessageElements的第一行放置一个断点,然后查看resetLastUpdate,尽管在上面的调用中传递了NO,但结果始终为YES.

更新:

我赞赏下面发送的回复.但是,我仍然有一个问题,虽然现在有点不同.boolValue确实会正确解释,但不会在通知中调用该方法.所以扩大:

[[NSNotificationCenter defaultCenter]addObserver:self
                                            selector:@selector(clearMessageElements:)
                                                name:@"appResigning"
                                              object:@YES];


-(void)clearMessageElements:(NSNumber *)resetLastUpdate
{
    NSLog(@"%hhd",[resetLastUpdate boolValue]);
}
Run Code Online (Sandbox Code Playgroud)

clearMessageElements现在可以使用我在这个问题顶部写的原始调用,但在NSSNotification中使用时,使用这种方法根本不调用该方法.但是,如果我删除@YES并用NIL替换它将执行该函数.所以我知道正在发送通知,但是在这里使用@YES的一些事情是阻止它执行该方法.

jtb*_*des 5

这是正确的做法,但@NO不是BOOL,它是一个NSNumberboolValueNO的.