我收到的错误对象不能为零。我正在使用Web服务,当我使用循环解析它时崩溃并且发送输出-[__NSArrayM insertObject:atIndex:]:
对象不能为nil为错误,因为我在NSMutableArray
中的空值上有空值我正在尝试解析。
我尝试用
修复 (1)if([Array containsObject:[NSNull null]])
(2)if([Array objectAtIndex:0
(3)if([Array objectAtIndex:counter] == 0 methods。
我的代码是,
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
答案 0 :(得分:11)
确保在将任何对象添加到其中之前已初始化名为phoneno的数组...
NSMutableArray *phoneno=[[NSMutableArray alloc]init];
并停止向其添加任何nil对象......
if(str) //or if(str != nil) or if(str.length>0)
{
//add the str into phoneno array.
}
else
{
//add the @""
}
答案 1 :(得分:5)
您无法将nil
插入NSArray
或NSDictionary
,因此您必须添加测试。
if(str){
[phoneno addObject:str];
}
答案 2 :(得分:1)
Hello有一些情况是你在数组中插入nil,所以当你尝试获取nil时它会使应用程序崩溃。所以请在插入数组之前检查值。如果value为nil,则在其中插入空白字符串。
if(str == nil || [str isKindOfClass:[NSNull null]])
{
[array addObject:@""];
}
else
{
[array addObject:str];
}
答案 3 :(得分:0)
您使用此实用程序方法验证nil // 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);
}
答案 4 :(得分:0)
NSString *str = [[node childAtIndex:counter] stringValue];
if(str.length>0)
{
[phoneno addObject:str];
}