如何从NSMutableArray追加

时间:2009-12-04 04:20:45

标签: iphone nsstring

我尝试从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];)附加到数据中

感谢

3 个答案:

答案 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