Objective c 向NSMutableArray添加对象时遇到问题

Objective c 向NSMutableArray添加对象时遇到问题,objective-c,nsmutablearray,Objective C,Nsmutablearray,我让truble向我的2个NSMutableArray添加对象。数据来自一个数据库,我知道我的解析是正确的,因为当我使用NSLog时,我得到了有效的输出。但是,我不知道如何将这两个不同的对象添加到我的两个不同的NSMutableArray中。这是我的密码 -(void)connectionDidFinishLoading:(NSURLConnection *)connection { allDataDictionary = [NSJSONSerialization JSONObjec

我让truble向我的2个NSMutableArray添加对象。数据来自一个数据库,我知道我的解析是正确的,因为当我使用NSLog时,我得到了有效的输出。但是,我不知道如何将这两个不同的对象添加到我的两个不同的NSMutableArray中。这是我的密码

-(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值抛出错误