как добавить из NSMutableArray - PullRequest
       21

как добавить из NSMutableArray

0 голосов
/ 04 декабря 2009

я пытаюсь добавить из NSMutableArray, но исключение ниже, фактически первые 2 цикла дают результат, но третий цикл дает это исключение

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 ]

4 голосов
/ 04 декабря 2009

Вы пытаетесь добавить ноль, что является незаконным. Вы можете легко обойти это, изменив соответствующую строку следующим образом:

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

Или замените эту пустую строку на то, что вы хотите. Чтобы добавить не строковое значение, преобразуйте его в строку, подобную этой:

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

Если tempAvgMark не является int, вам придется изменить% i. Например, для NSNumbers используйте% @ вместо.

1 голос
/ 04 декабря 2009

Объект для ключа @ "NAME" в словаре должен быть строкой, и для добавления int вы можете использовать [string appendFormat:@"%d", someInt].

0 голосов
/ 04 декабря 2009

Из этого сообщения следует: NSCFString appendString:]: nil аргумент ', что одно из значений словаря равно нулю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...