[英]Having trouble adding objects to NSMutableArray
我在将对象添加到我的2个NSMutableArrays中很麻烦。 数据来自数据库,我知道我的解析是正确的,因为当我使用NSLog时会得到有效的输出。 但是我无法弄清楚如何将2个不同的对象添加到2个不同的NSMutableArrays中。 这是我的代码
-(void)connectionDidFinishLoading:(NSURLConnection *)connection {
allDataDictionary = [NSJSONSerialization JSONObjectWithData:webData options:0 error:nil];
feed = [allDataDictionary objectForKey:@"feed"];
arrayOfEntry = [feed objectForKey:@"entry"];
for (NSDictionary *dictionary in arrayOfEntry) {
NSDictionary *title = [dictionary objectForKey:@"title"];
NSString *labelTitle = [title objectForKey:@"label"];
[arrayLabel addObject:labelTitle];
NSDictionary *summary = [dictionary objectForKey:@"summary"];
NSString *labelSummary = [summary objectForKey:@"label"];
[arraySummary addObject:labelSummary]; //This line makes the application crash
}
}
由于某些原因,当我想将labelSummary添加到arraySummary时,出现此错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
任何帮助表示赞赏。
您的解析确实是正确的。 但是,当解析器遇到一个空字段时,它将返回nil。 问题在于NSArrays无法接受nils,因为nil不是对象,它等于0。因此,您最多添加一个对象。 NSNull的作用。
必须测试以查看解析器是否返回nil,如果是,则添加[NSNull null]。
NSString* labelSummary = [summary objectForKey:@"label"];
[arraySummary addObject:(labelSummary!=nil)?labelSummary:[NSNull null];
该错误消息告诉您您要添加到数组中的对象之一为nil。
你必须更换
[arrayLabel addObject:labelTitle];
与
if (labelTitle != nil) {
[arrayLabel addObject:labelTitle];
}
和
[arraySummary addObject:labelSummary];
与
if (labelSummary != nil) {
[arraySummary addObject:labelSummary];
}
如果确实需要包含nil对象,则使用NSNull。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.