簡體   English   中英

將對象添加到NSMutableArray時遇到問題

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM