【发布时间】:2018-02-23 13:10:37
【问题描述】:
我收到 NSInvalidArgumentException
*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil 我的代码中第 1148 行的 Crashlytcs 异常,向您展示了我的代码的 1147-1149 行:
if(snapshot.stickerInfoForAnalitycs) {
[self.usedStickers addObject:snapshot.stickerInfoForAnalitycs];//1148 line
}
self.usedStickers 是NSMutableArray
这怎么可能? (我知道 crashlitycs 有可能显示错误的行,但这不太可能,因为这个崩溃出现在 9.20 版本的应用程序中,而在 9.24 版本中它仍然在 1148 行)。
UPD:stickerInfoForAnalitycs 是一个 NSString * 属性,没有 getter/setter 覆盖。声明为@property (nonatomic) NSString * stickerInfoForAnalitycs;
【问题讨论】:
-
snapshot.stickerInfoForAnalitycs是nil。 -
消息清楚地表明
snapshot.stickerInfoForAnalitycs为零。确保总有一个值 -
好吧,我刚读了整个 sn-p,虽然我不是 objC 程序员,但
if(snapshot.stickerInfoForAnalitycs) {测试应该确保它不是 nil... 对吧? -
@luk2302 但 if(snapshot.stickerInfoForAnalitycs) 用于检查这种情况
-
@passingnil - 好的,也许可以这样尝试:
NSString *s = [snapshot.stickerInfoForAnalitycs copy]; if (s) { ... }这也将允许您在此处放置一个断点以检查发生了什么。
标签: ios objective-c crash nsmutablearray