[英]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.