Iphone iOS NSArray在索引处插入对象
我正在查看正在测试应用程序的设备的崩溃日志,我看到以下几行 objc_异常_抛出+33 [\uu nsarray插入对象:atIndex:+187 下面是发生这种情况的代码。appData是一个NSDictionary,我希望imageUrl是internet上png文件的URLIphone iOS NSArray在索引处插入对象,iphone,ios,xcode,testing,Iphone,Ios,Xcode,Testing,我正在查看正在测试应用程序的设备的崩溃日志,我看到以下几行 objc_异常_抛出+33 [\uu nsarray插入对象:atIndex:+187 下面是发生这种情况的代码。appData是一个NSDictionary,我希望imageUrl是internet上png文件的URL for (int i = 1; i <= [self getNumberOfScreenshots]; i++) { pathToUrl = @"screenshot_"; pathToUrl =
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];
}
对于(int i=1;i可能有两个原因,因为您没有更详细地描述错误
1) 实际上,您并没有将内存分配给数组
2) 将nil值插入数组。要停止插入nil,请执行以下操作:
if(imageData)
{
[NSMutableArrayObj addObject:imageData];
}
是的,nil
不允许在容器中使用;如果该值可能是nil
,那将是一个问题。但你不能说提出了哪一个例外;跟踪意味着抛出了异常。它可能更准确地描述了错误。是的,添加更多错误检查并拒绝imageData==nil
的图像。感谢您的帮助!我将添加错误检查,我猜这是零问题。我看不出跟踪的其余部分到底抛出了什么异常。。。最上面一行是uu exception preprocess+163AddNSAssert(imageData!=nil,@“无效图像!”)如果您认为图像数据永远不应该是非零的,则在分配imageData
之后执行code>。然后彻底测试它,你应该看看你的断言是否正确。。。