2014-01-29 42 views
0

我有這樣的代碼:錯誤有關YES和真實,NO和假之間的差異

- (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然而,在這兩種情況下沒有被打印到終端這是沒有意義的,我是因爲如果該代碼導致錯誤,那麼該區域不應該被計算機讀取,並且t因此NSLog應該被調用?如此迷茫。所以我想我的問題是爲什麼沒有任何東西打印到終端,爲什麼更改爲NO會使錯誤消失?我不認爲他們的區別會導致錯誤?爲什麼呢?

編輯:真的很抱歉你們都。上面的代碼與我的錯誤沒有任何關係。道歉。

+0

首先檢查是否得了這種方法獲取調用或不?因爲在任何情況下它都必須記錄文本「任何東西」。 – hpp

+0

我不明白。我檢查方法調用的方式是使用NSLog。 – user3139679

+0

嗨,沒有得到你想說的,請解釋。 – hpp

回答

0

的第一件事這個問題:

difference between YES and true and NO and false

TRUE宏只提供與C語言代碼的Objective-C的向後兼容性的設計是一個嚴格的超集的C.所以TRUEYES都是一樣的。

Possible Duplicate Question

0

我不知道什麼是確切的問題butnot大不同,但有型的兩個布爾在objective-c

1)BOOL
2)BOOL

所以BOOL可以包含值oth呃比。 和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?

相關問題