Как целые числа (ключи и значения) могут быть добавлены и получены из NSDictionary - PullRequest
2 голосов
/ 31 июля 2011

Как добавить пару ключ (int) и значение (int) к объекту NSDictionary? и как их можно получить как int?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 31 июля 2011

Ключ и значение словаря должны быть ссылкой на объект (id), чтобы вы не могли использовать целое число в качестве ключа. Вместо этого вы должны обернуть свои целые числа в NSNumber:

[NSNumber numberWithInt:5]

Затем вы можете инициализировать NSDictionary, используя один из initWithObjects инициализаторов. Я выбрал инициализатор initWithObjectsAsKeys:, который принимает ключ / значения в формате значение, ключ, значение, ключ .. nil.

NSDictionary *dict = [[NSDictionary alloc]initWithObjectsAndKeys:[NSNumber numberWithInt:15], [NSNumber numberWithInt:5], nil];

Чтобы получить доступ к значению, вам нужно сделать то же самое:

NSLog(@"%@", [dict objectForKey:[NSNumber numberWithInt:5]]);

РЕДАКТИРОВАТЬ : Судя по вашему комментарию, вам следует использовать NSMutableDictionary, а не NSDictionary. То же самое относится и к переносу целых чисел, но вы захотите использовать метод setObject: forKey:

NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setObject:[NSNumber numberWithInt:15] forKey:[NSNumber numberWithInt:5]];   

Это помогает?

5 голосов
/ 31 июля 2011

Оберните его в NSNumber:

int intKey = 1;
int intValue = 2;
[myDict setObject:[NSNumber numberWithInt:intValue] forKey:[NSNumber numberWithInt:intKey]];
NSLog(@"key: %i, value: %i", intKey, [[myDict objectForKey:[NSNumber numberWithInt:intKey] intValue]);

РЕДАКТИРОВАТЬ: вам нужно использовать NSMutableDictionary для установки значений.NSDictionary нельзя изменить после создания.

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