Objective c 向NSMutableArray添加对象时遇到问题
我让truble向我的2个NSMutableArray添加对象。数据来自一个数据库,我知道我的解析是正确的,因为当我使用NSLog时,我得到了有效的输出。但是,我不知道如何将这两个不同的对象添加到我的两个不同的NSMutableArray中。这是我的密码Objective c 向NSMutableArray添加对象时遇到问题,objective-c,nsmutablearray,Objective C,Nsmutablearray,我让truble向我的2个NSMutableArray添加对象。数据来自一个数据库,我知道我的解析是正确的,因为当我使用NSLog时,我得到了有效的输出。但是,我不知道如何将这两个不同的对象添加到我的两个不同的NSMutableArray中。这是我的密码 -(void)connectionDidFinishLoading:(NSURLConnection *)connection { allDataDictionary = [NSJSONSerialization JSONObjec
-(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。问题在于nsarray不能接受nils,因为nil不是一个对象,它等价于0。因此,您最需要添加一个对象。这是NSNull的角色 必须测试解析器是否返回nil,如果返回,则添加[NSNull null]
NSString* labelSummary = [summary objectForKey:@"label"];
[arraySummary addObject:(labelSummary!=nil)?labelSummary:[NSNull null];
您的解析确实是正确的。但是,当解析器遇到空字段时,它返回nil。问题在于nsarray不能接受nils,因为nil不是一个对象,它等价于0。因此,您最需要添加一个对象。这是NSNull的角色 必须测试解析器是否返回nil,如果返回,则添加[NSNull null]
NSString* labelSummary = [summary objectForKey:@"label"];
[arraySummary addObject:(labelSummary!=nil)?labelSummary:[NSNull null];
错误消息告诉您,试图添加到数组中的对象之一为nil 你必须更换
[arrayLabel addObject:labelTitle];
与
及
[arraySummary添加对象:labelSummary]
与
如果确实需要包含nil对象,请使用NSNull。错误消息告诉您,您试图添加到数组中的一个对象是nil 你必须更换
[arrayLabel addObject:labelTitle];
与
及
[arraySummary添加对象:labelSummary]
与
如果确实需要包含一个nil对象,然后使用NSNull。您对错误消息有何想法?我没有看到调用
insertObject:atIndex:
@特洛伊木马对象:addObject:
调用通过。您对错误消息有何想法?我没有看到调用insertObject:dex:
@特洛伊木马对象:addObject:
调用通过。您棒极了!成功了!但是为什么我不需要为lableTitle这样做呢?@RockPaperScissors Labelitle没有回来。在解析之后测试所有值是否为nil是一种很好的做法,除非为nil值抛出错误!成功了!但是为什么我不需要为lableTitle这样做呢?@RockPaperScissors Labelitle没有回来。在解析之后测试all是否为nil是一种很好的做法,除非应该为nil值抛出错误