繁体   English   中英

如何从NSMutableArray追加

[英]how to append from NSMutableArray

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

谢谢

您正在尝试附加nil,这是非法的。 通过将相关行更改为以下内容,可以轻松解决此问题:

[data appendString:(tempName == nil ? @"" : tempName)];

或将空字符串替换为您想要的任何其他字符串。 要附加一个非字符串值,请将其转换为这样的字符串:

[data appendString:[NSString stringWithFormat:@"%i", tempAvgMark]];

如果tempAvgMark不是'int',则必须更改%i。 例如,对于NSNumbers,请使用%@。

字典中键@“ NAME”的对象必须是字符串,并且要附加int,可以使用[string appendFormat:@"%d", someInt]

从此消息中出现:NSCFString appendString:]:nil参数,字典值之一为null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM