2013-07-24 2 views
0

, допустим, у меня есть nsdictionary, который содержит массив как значение.object-c Доступ к массиву, заданному как значение NSDictionary

NSMutableDictionary *test = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
[[NSMutableArray alloc]initWithObjects:"@Audi",@"Mercedes",@"Ferrari",nil], @"box 1", 
[[NSMutableArray alloc]initWithObjects:"@Chervrolet",@"Mercedes",@"Bentley",nil], @"box 2", 
[[NSMutableArray alloc]initWithObjects:"@Audi",@"Dodge",@"Ferrari",nil], @"box 2", 
nil] 

это мой простой словарь с массивами внутри. Ну, теперь мне нужно проверить, есть ли в нем значение.

здесь, как я проверить, если Theres определенный ключ

if([test [email protected]"box 2"]) { NSLog(@"item exists"); } 

, как я могу получить доступ теперь массив внутри одного значения? скажем, чтобы проверить, содержит ли массив элемент или добавить его?

скажем я хочу, чтобы проверить, если коробка 2 содержит Audi, и если нет, то я хочу, чтобы добавить его

ответ

0

Использование containsObject вы можете проверить, если объект существует в массиве.

 if([[test valueForKey:@"box 2"] containsObject:@"Audi"]) 
      NSLog(@"Audi exists"); 
     else 
     { 
      //[[test valueForKey:@"box 2"] addObject:@"Audi"]; 

      //EDIT 
      NSMutableArray *data = [test valueForKey:@"box 2"]; 
      [data addObject:@"Audi"]; 
      [test setObject:data forKey:@"box 2"]; 

      NSLog(@"Add Audi"); 
     } 
+0

ОК спасибо, что работает ... но как добавить объект в массив? Я не могу получить имя экземпляра для вызова массива. Я попытался использовать [test valueforkey] addObject, но не считаю его объектом массива, поэтому не будет работать, я не могу вызвать экземпляр этого массива? – mystudioos

+0

@mystudioos проверить // часть EDIT в обновленном ответе. –

+0

большое спасибо :) – mystudioos

Смежные вопросы