我在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"];
}];
}
}
有人可以告诉我如何解决这个问题吗?
由于
答案 0 :(得分:2)
问题是&NSUbiquityIdentityDidChangeNotification
是变量的地址,不能为NULL。
条件if (&NSUbiquityIdentityDidChangeNotification != NULL)
始终为true,Xcode会警告您该行无用。
答案 1 :(得分:2)
我写了那段代码。正如一些人所指出的那样,在使用它之前确保NSUbiquityIdentityDidChangeNotification
符号存在。在iOS 6之前,该通知不存在。
代码已有几年的历史,现在框架中不支持iOS 5,因此我将删除该检查。
<强>更新强> 原来检查无法删除,因为我们仍然支持OS X 10.7。所以我添加了#pragmas来改为警告。