Как добавить в NSDictionary

я использовал NSMutableArray и понял, что использование словаря намного проще для того, что я пытаюсь достичь.

Я хочу сохранить ключ как NSString и значение как int в словарь. Как это делается? Во-вторых, в чем разница между изменяемым и обычным словарем?

5 ответов


A mutable словарь может быть изменен, т. е. вы можете добавлять и удалять объекты. Ан неизменяемые фиксируется после его создания.

создать и добавить:

NSMutableDictionary *dict = [[NSMutableDictionary alloc]initWithCapacity:10];
[dict setObject:[NSNumber numberWithInt:42] forKey:@"A cool number"];

и извлечения:

int myNumber = [[dict objectForKey:@"A cool number"] intValue];

установив, вы бы использовали setValue:(id)value forKey:(id)key метод


когда когда-либо объявлен массив, то только мы должны добавить ключ-значение в NSDictionary, как

NSDictionary *normalDict = [[NSDictionary alloc]initWithObjectsAndKeys:@"Value1",@"Key1",@"Value2",@"Key2",@"Value3",@"Key3",nil];

мы не можем добавлять или удалять Ключевые значения в этом NSDictionary

где, как и в NSMutableDictionary мы можем добавить объекты после intialization массива также используя этот метод

NSMutableDictionary *mutableDict = [[NSMutableDictionary alloc]init];'
[mutableDict setObject:@"Value1" forKey:@"Key1"];
[mutableDict setObject:@"Value2" forKey:@"Key2"];
[mutableDict setObject:@"Value3" forKey:@"Key3"];

для удаления значения ключа мы должны использовать следующий код

[mutableDict removeObject:@"Value1" forKey:@"Key1"];

обновление версии

С

создать:

NSDictionary *dictionary = @{@"myKey1": @7, @"myKey2": @5}; 

изменения:

NSMutableDictionary *mutableDictionary = [dictionary mutableCopy];     //Make the dictionary mutable to change/add
mutableDictionary[@"myKey3"] = @3;

синтаксис короткой руки называется Objective-C Literals.

Свифт

создать:

var dictionary = ["myKey1": 7, "myKey2": 5]

изменения:

dictionary["myKey3"] = 3

вы хотите спросить "в чем разница между изменяемым и не изменяемым массив или словарь."Много раз используются разные термины для описания вещей, о которых вы уже знаете. В этом случае можно заменить термин "изменяемый" на "динамический"."Таким образом, изменяемый словарь или массив является "динамическим" и может изменяться во время выполнения, тогда как не изменяемый словарь или массив является "статическим" и определяется в вашем коде и не изменяется во время выполнения (другими словами, вы не будет добавлять, удалять или, возможно, сортировать элементы.)

Что касается того, как это делается, вы просите нас повторить документацию здесь. Все, что вам нужно сделать, это поиск в образце кода и документации Xcode, чтобы увидеть, как именно это делается. Но изменчивая вещь бросила меня тоже, когда я только учился,поэтому я дам вам это!