NSUbiquityIdentityDidChangeNotification的地址比较不等于空指针始终为true

时间:2015-11-04 22:41:39

标签: ios objective-c ensembles

我在Xcode中收到此警告

comparison of addresses of NSUbiquitycontainerDidChangeNotification not equal to a null pointer is always true

它位于

中的核心数据集合框架中
CDEICloudFileSystem.m

in

- (void)addUbiquityContainerNotificationObservers  {

 [self removeUbiquityContainerNotificationObservers];

/// in this line 
if (&NSUbiquityIdentityDidChangeNotification != NULL) {
///

    __weak typeof(self) weakSelf = self;
    ubiquityIdentityObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSUbiquityIdentityDidChangeNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
        __strong typeof(weakSelf) strongSelf = weakSelf;
        [strongSelf stopMonitoring];
        [strongSelf willChangeValueForKey:@"identityToken"];
        [strongSelf didChangeValueForKey:@"identityToken"];
    }];
  }
}

有人可以告诉我如何解决这个问题吗?

由于

2 个答案:

答案 0 :(得分:2)

问题是&NSUbiquityIdentityDidChangeNotification是变量的地址,不能为NULL。 条件if (&NSUbiquityIdentityDidChangeNotification != NULL)始终为true,Xcode会警告您该行无用。

答案 1 :(得分:2)

我写了那段代码。正如一些人所指出的那样,在使用它之前确保NSUbiquityIdentityDidChangeNotification符号存在。在iOS 6之前,该通知不存在。

代码已有几年的历史,现在框架中不支持iOS 5,因此我将删除该检查。

<强>更新 原来检查无法删除,因为我们仍然支持OS X 10.7。所以我添加了#pragmas来改为警告。