【问题标题】:Would a pointer to a pointer to nil match against NULL?指向 nil 的指针会与 NULL 匹配吗?
【发布时间】:2010-06-13 06:20:52
【问题描述】:

例子:

验证方法包含此检查以查看是否应创建 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 不是零。也许有人可以解决这个问题?

【问题讨论】:

  • 如果按住 Command 键并双击 nil 会发生什么? ;)
  • 然后我得到了一些非常奇怪的东西,例如#define nil NULL ;) 哈哈...可以考虑一下。是的。一样。感谢您的提示。

标签: objective-c pointers null


【解决方案1】:

nil(全部小写)是一个指向 Objective-C 对象的空指针。

Nil(大写)是一个指向 Objective-C 类的空指针。

NULL(全部大写)是指向其他任何内容的空指针。

但它们都编译为 0,所以是 (nil == Nil == NULL == 0)(感谢 Dave)。

【讨论】:

  • 或更简单地说:nil = Nil = NULL = 0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多