Как я могу изменить все значения для ключей в plist сразу на одно конкретное значение? - PullRequest
0 голосов
/ 03 января 2012

У меня есть список с несколькими ключами. Каждое из значений ключей - «N» или «Y».

У меня нет проблем, заходя по очереди и меняя значения. Но есть ли способ изменить каждое значение ключей в листе на одно значение? Это действительно сократило бы мой код.

Текущий код изменяет одно значение для одного ключа в листе, как это:

NSString *newValue;
newValue = @"Y";

[manufacturerDictionary setObject:[NSString stringWithString:newValue] 
                           forKey:manufacturerName];
[manufacturerDictionary writeToFile: path atomically:YES];
[manufacturerDictionary release];

1 Ответ

1 голос
/ 03 января 2012

Исходя из вашего кода, я предполагаю, что ваш plist содержит один заархивированный NSDictionary в качестве корневого объекта. Как насчет этого:

NSString *newValue = @"Y";
NSArray *allKeys = [manufacturerDictionary allKeys];
for (NSString *key in allKeys)
{
    [manufacturerDictionary setObject:newValue forKey:key];
}
[manufacturerDictionary writeToFile:path atomically:YES];
[manufacturerDictionary release];

for (NSString *key in allKeys) использует быстрое перечисление для перечисления каждого ключа, существующего в словаре.

...