2010-06-13 64 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