1

我正在查看正在测试应用程序的设备的崩溃日志,我看到以下几行...

objc_exception_throw + 33

[__NSArrayM insertObject:atIndex:] +187

发生这种情况的代码如下。appData 是一个 NSDictionary,我希望 imageUrl 是 Internet 上 png 文件的 URL。

for (int i = 1; i <= [self getNumberOfScreenshots]; i++) {
    pathToUrl = @"screenshot_";
    pathToUrl = [pathToUrl stringByAppendingString:[[NSNumber numberWithInt:i] stringValue]];
    imageUrl = [self.appData valueForKey:pathToUrl];
    imageData = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:imageUrl]];
    [NSMutableArrayObj addObject:imageData];
}

什么会导致这种类型的错误?该错误很少发生..可能是 imageData 有时为零,因为它无法从 url 下载 png 图像,因此当我尝试将其添加到 NSMutableArrayObj 时会引发该异常?

谢谢!

4

1 回答 1

0

可能有两个原因,因为您没有更具体地描述错误

1)实际上你没有将内存分配给数组

2) 将 nil 值插入数组。要停止插入 nil,请执行以下操作:

 if(imageData)
 {
   [NSMutableArrayObj addObject:imageData];
 }
于 2012-08-02T08:17:37.333 回答