Структура данных для хранения ключ - пара значений, где значение может быть изменено в target-C - PullRequest
0 голосов
/ 31 мая 2019

Я хочу иметь структуру данных, в которой каждому ключу соответствует значение (Int), которое может быть изменено так, как к нему может быть добавлено некоторое значение.

Может NSMutableDictionaryработа?

Если да, то как?

Ответы [ 3 ]

0 голосов
/ 31 мая 2019

Вы не можете хранить примитивные типы с типами Какао, такими как NSMutableDictionary, вам необходимо связать их с их типами NS, т. Е. NSNumber и т. Д.

NSNumber *val1= [NSNumber numberWithInt:0];
NSNumber *val2= [NSNumber numberWithInt:1];
NSNumber *val3= [NSNumber numberWithInt:2];

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
dict["yourKey"] = val1;
dict["yourKey1"] = val2;
dict["yourKey2"] = val3;
0 голосов
/ 31 мая 2019

Вы можете сделать это так:

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:[NSNumber numberWithInt:42] forKey:@"key1"];

int myNumber = [[dict objectForKey:@"key1"] intValue];
myNumber = myNumber + 10;

dict[@"key1"] = [NSNumber numberWithInt:myNumber];
NSLog(@"%@", dict);

Вывод данного кода:

{
    key1 = 52;
}
0 голосов
/ 31 мая 2019

Да, вы можете использовать NSMutableDictionary для изменения значений. Но для значения это должен быть NSNumber. Я думаю, что так будет хорошо для тебя.

...