【发布时间】:2015-09-14 06:58:27
【问题描述】:
在 Xcode 7 中,我收到以下警告:
Null passed to a callee that requires a non-null argument
.. 来自 NSMutableArray 的这个 nil 初始化...
sectionTitles = [[NSMutableArray alloc] initWithObjects:nil];
我发现我应该改用removeAllObjects。
[sectionTitles removeAllObjects];
但是,这不允许我评估 sectionTitles.count == 0。我确实尝试了sectionTitles == nil,但是除非我使用iniWithObjects,否则我以后无法添加对象。
当我刷新数据源时,如果没有记录,我需要将数组设置为 nil 或零。除非我使用过initWithObjects,否则我似乎无法使用addObject 添加项目。
【问题讨论】:
-
您只能使用已初始化的对象。不过,在 nil 上调用 count 会起作用。
-
if (sectionTitles.count != nil)导致警告? -
[sectionTitles removeAllObjects]或sectionTitles = [NSMutableArray array]应该可以工作,它们在逻辑上是相同的(尽管性能可能不同)。
标签: ios objective-c xcode cocoa-touch