我尝试从NSMutableArray追加但是下面的异常,实际上前2个循环给出了结果,但是第3个循环给出了这个异常
2009-12-04 12:01:19.044 AppBuzz[14562:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFString appendString:]: nil argument'
2009-12-04 12:01:19.057 AppBuzz[14562:207] Stack: (
820145437,
837578260,
819694387,
819694291,
814894619,
814804961,
17445,
23977,
18651,
19281,
862009284,
9035,
861597328,
861596264,
861928960,
861926972,
861925524,
858687888,
819893547,
819891231,
861592584,
861585968,
8749,
8612
)
terminate called after throwing an instance of 'NSException'
my code as below
for (int i = 0; i < [student count]; i++)
{
if([student objectAtIndex:i] != NULL)
{
dic = [student objectAtIndex:i];
tempName = [dic objectForKey:@"NAME"];
tempAvgMark = [[dic objectForKey:@"AVG_MARK"] intValue];
[data appendString:@"{\"name\":\""];
[data appendString:tempName]; // here i'm having prob
[data appendString:@"\",\"avg_mark\":\""];
//[data appendString:tempAvgMark];
[data appendString:@"\"}"];
}
}
NSLOG(@"Result - %@",data);
任何人都可以提供帮助 1)追加[data appendString:tempName]; 2)将int值([data appendString:tempAvgMark];)附加到数据中
感谢
答案 0 :(得分:4)
你试图追加一个零,这是非法的。您可以通过将相关行更改为以下内容来轻松解决此问题:
[data appendString:(tempName == nil ? @"" : tempName)];
或者用你想要的任何其他东西替换那个空字符串。要附加非字符串值,请将其转换为如下字符串:
[data appendString:[NSString stringWithFormat:@"%i", tempAvgMark]];
如果tempAvgMark不是'int',则必须更改%i。例如,对于NSNumbers,请改用%@。
答案 1 :(得分:1)
字典中键@“NAME”的对象必须是字符串,要附加一个int,您可以使用[string appendFormat:@"%d", someInt]
。
答案 2 :(得分:0)
从这条消息中可以看出:NSCFString appendString:]:nil参数'其中一个字典值为null