我有这段代码:
- (BOOL)logInViewController:(PFLogInViewController *)logInController shouldBeginLogInWithUsername:
(NSString *)username password:(NSString *)password
{
NSLog(@"anything");
return false;
}
如果我运行它然后我在一些汇编代码中得到这个错误:“线程1:EXC_BAD_ACCESS(代码= 2,地址= 0x1a)。如果我将代码更改为:
- (BOOL)logInViewController:(PFLogInViewController *)logInController shouldBeginLogInWithUsername:
(NSString *)username password:(NSString *)password
{
NSLog(@"anything");
return NO;
}
我没有得到那个bug。但是,在这两种情况下都没有打印到终端。这对我没有意义,因为如果该代码导致错误,那么计算机不应该读取该区域,因此应该调用NSLog?如此迷茫。所以我想我的问题是为什么没有任何东西印在终端上,为什么改为NO会让bug消失?我不认为他们的差异会导致这个错误吗?为什么呢?
编辑:真的很抱歉你们。上面的代码与我的错误无关。道歉。
答案 0 :(得分:0)
关于这个问题的第一件事:
difference between YES and true and NO and false
TRUE
宏仅作为与C
语言代码的向后兼容性提供,因为Objective-C被设计为严格的C超集。所以TRUE
和{ {1}}两者都相同。
答案 1 :(得分:0)
我不知道究竟是什么问题但主要不同但objective-c
1)BOOL
2)布尔
因此BOOL
可以包含 YES 和 NO 以外的值。
并且bool
可以包含 TRUE 和 FALSE 以外的值。
对于大多数人来说,这是一个不必要的问题,但如果你真的想要一个布尔值,最好使用一个bool。我应该补充一点:iOS SDK通常在其接口定义上使用BOOL,因此这是一个坚持BOOL的参数。
//These will all print "1"
NSLog(@"%d", true == true);
NSLog(@"%d", TRUE == true);
NSLog(@"%d", YES == true);
NSLog(@"%d", true == TRUE);
NSLog(@"%d", TRUE == TRUE);
NSLog(@"%d", YES == TRUE);
NSLog(@"%d", true == YES);
NSLog(@"%d", TRUE == YES);
NSLog(@"%d", YES == YES);
NSLog(@"%d", false == false);
NSLog(@"%d", FALSE == false);
NSLog(@"%d", NO == false);
NSLog(@"%d", false == FALSE);
NSLog(@"%d", FALSE == FALSE);
NSLog(@"%d", NO == FALSE);
NSLog(@"%d", false == NO);
NSLog(@"%d", FALSE == NO);
NSLog(@"%d", NO == NO);
//These will all print "0"
NSLog(@"%d", false == true);
NSLog(@"%d", FALSE == true);
NSLog(@"%d", NO == true);
NSLog(@"%d", false == TRUE);
NSLog(@"%d", FALSE == TRUE);
NSLog(@"%d", NO == TRUE);
NSLog(@"%d", false == YES);
NSLog(@"%d", FALSE == YES);
NSLog(@"%d", NO == YES);
NSLog(@"%d", true == false);
NSLog(@"%d", TRUE == false);
NSLog(@"%d", YES == false);
NSLog(@"%d", true == FALSE);
NSLog(@"%d", TRUE == FALSE);
NSLog(@"%d", YES == FALSE);
NSLog(@"%d", true == NO);
NSLog(@"%d", TRUE == NO);
NSLog(@"%d", YES == NO);
来自Is there a difference between YES/NO,TRUE/FALSE and true/false in objective-c?