Ошибка в setObject с NSMutableDictionary - PullRequest
0 голосов
/ 08 декабря 2010

Я новичок в Objective-C, я хотел бы окуклить словарь, но у меня есть ошибка в строке:

[fullCollaboraeur setObject:(id)tmpArray forKey:(id)col.Id];

Это полный код:

NSMutableArray *collaborateurs = [[NSMutableArray alloc] init];
...
NSMutableDictionary *fullCollaboraeur = [[NSMutableDictionary alloc] init];
for (Collaborateur *col in  collaborateurs)
 {
  NSMutableArray *tmpArray;
  tmpArray = [fullCollaboraeur objectForKey:(id)col.Id];
  if(tmpArray == nil)
  {
   NSLog(@"Value for %i is null", col.Id);
   tmpArray = [[NSMutableArray alloc] init];
   [tmpArray addObject:col];
   [fullCollaboraeur setObject:(id)tmpArray forKey:(id)col.Id];
  }
  else
  {
   NSLog(@"%i", col.Id);
   [tmpArray addObject:col];
   [fullCollaboraeur setObject:tmpArray forKey:(id)col.Id];
  }
 }

Можете ли вы помочь мне, пожалуйста?

Большое спасибо

1 Ответ

5 голосов
/ 08 декабря 2010

NSLog (@ "Значение для% i равно нулю", col.Id); .... [fullCollaboraeur setObject: (id) tmpArray forKey: (id) col.Id];

Если Id имеет тип (int), он не может быть ключом в словаре напрямую. Словари принимают объекты в качестве ключей.

Примечание:

  • Типовое литье следует избегать. Все эти (id) должны уйти. Если компилятор выдает предупреждение в этих строках, это, вероятно, указывает на реальную проблему, которая не будет устранена путем приведения типов.

  • переменные экземпляра именуются строчными буквами. id является зарезервированным словом и, следовательно, не должно использоваться в качестве имени переменной экземпляра. Используйте что-то вроде columnIdentifier.

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