2010-06-13 49 views
4

實施例:將指針指向無匹配NULL的指針嗎?

驗證方法包含此檢查以查看是否有NSError對象將被創建或不:

- (BOOL)validateCompanyName:(NSString *)newName error:(NSError **)outError { 
    if (outError != NULL) { 
     // do it... 

現在我傳遞一個NSError對象,像這樣:

NSError *error = nil; 
BOOL ok = [self validateCompanyName:@"Apple" error:&error]; 

我不確定這是否匹配不爲NULL的檢查。我認爲它不是NULL,因爲我相信NULL不是零。也許有人可以清除它?

+3

如果按住Command鍵並雙擊'nil'會發生什麼? ;) – 2010-06-13 06:48:48

+1

然後,我得到了一些非常奇怪的東西,如#define零NULL;)哈哈......可以想到這一點。是啊。一樣。感謝提示。 – dontWatchMyProfile 2010-06-13 07:08:20

回答

6

nil(全部小寫)是一個指向Objective-C對象的空指針。

Nil(大寫)是一個指向Objective-C類的空指針。

NULL(全部大寫)是一個指向其他任何內容的空指針。

然而他們都編譯爲0,所以(nil == Nil == NULL == 0)(謝謝戴夫)。

+2

或者更簡單地說:'nil = Nil = NULL = 0' – 2010-06-13 06:47:50