– :object不能为nil

我收到错误对象不能为零。 我正在使用Web服务,当我使用循环解析它崩溃并发送输出-[__NSArrayM insertObject:atIndex:]:对象不能为nil为错误,因为我在NSMutableArray空值上有空值,我试图解析。

我试着修复

(1)if([Array containsObject:[NSNull null]])
(2)if([Array objectAtIndex:0
(3)if([Array objectAtIndex:counter] == 0方法。

我的代码是,

 if([[[node childAtIndex:counter] name] isEqualToString:@"Phone"]){ if([phoneno containsObject:[NSNull null]]){ phone.text = @"-"; } else{ NSString *str = [[node childAtIndex:counter] stringValue]; [phoneno addObject:str]; NSString *myString = [phoneno componentsJoinedByString:@","]; [phone setText:myString]; phone.text = [NSString stringWithFormat:@"%@",myString]; } } 

在这里,phoneno是NSMutableArray

在将任何对象添加到其中之前,请确保已初始化名为phoneno的数组…

 NSMutableArray *phoneno=[[NSMutableArray alloc]init]; 

并停止添加任何零对象…

 if(str) //or if(str != nil) or if(str.length>0) { //add the str into phoneno array. } else { //add the @"" } 

您不能将nil插入NSArrayNSDictionary因此您必须添加测试。

 if(str){ [phoneno addObject:str]; } 

你好有些情况下你在数组中插入nil,所以当你试图获得nil然后它会使应用程序崩溃。 所以请在插入数组之前检查值。 如果value为nil,则在其中插入空白字符串。

 if(str == nil || [str isKindOfClass:[NSNull null]]) { [array addObject:@""]; } else { [array addObject:str]; } 

您使用此实用程序方法validationnil // Nil / Null / NULL检查:

 -(BOOL)isObjectEmpty:(id)object { return object == nil || ([object respondsToSelector:@selector(length)] && [(NSData *)object length] == 0) || ([object respondsToSelector:@selector(count)] && [(NSArray *)object count] == 0); } 
 NSString *str = [[node childAtIndex:counter] stringValue]; if(str.length>0) { [phoneno addObject:str]; }