– :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
插入NSArray
或NSDictionary
因此您必须添加测试。
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]; }