Восстановите значение в NSDictionary - PullRequest
0 голосов
/ 06 мая 2011

Я хочу восстановить значения, содержащиеся в NSDictionary. Я делаю это:

MyCommon *pCommon = [MyCommon Singleton];
NSArray *result = pCommon.res; //res is define and retain in common.m. This is the array.
NSDictionary *dataItem = [result objectAtIndex:????];

я не знаю, что я могу поставить, чтобы заменить ????

Спасибо

Ответы [ 2 ]

2 голосов
/ 06 мая 2011

В отличие от некоторых других языков, Objective-C проводит различие между массивами и словарями.

Массив - это коллекция, индексированная по номеру.Словарь - это коллекция, индексируемая объектами (обычно это строки, но могут быть и другие типы).

Кроме того, Objective-C различает изменяемые и неизменяемые массивы и словари.NSArray и NSDictionary нельзя изменить после их создания.Если вам нужно добавить объекты в вашу коллекцию, используйте NSMutableArray и NSMutableDictionary.

NSArray * myArray = [[NSArray alloc] initWithObjects: @"text1", @"text2", @"text3", nil];
// you can then access a member by using:
NSString * text = [myArray objectAtIndex: 0];

NSMutableDictionary * myDict = [[NSMutableDictionary alloc] init];
// add an object
[myDict setObject:@"text1" forKey:@"key1"];
[myDict setObject:@"text2" forKey:@"key2"];
// you can retrieve objects using:
text = [myDict objectForKey: @"key1"];

[myArray release];
[myDict release];
0 голосов
/ 06 мая 2011

Ну, result это NSArray, а не NSDictionary, поэтому просто укажите индекс интересующего вас элемента. Массивы индексируются целыми числами от нуля.result - это NSDictionary, а не NSArray, используйте метод objectForKey: вместо objectAtIndex:.

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