Я заполнил массив с помощью.
arrSettings = [[NSMutableArray alloc] initWithContentsOfFile:[self settingsPath]];
Файл представляет собой список с корнем в виде массива, а затем словарь с тремя тремя ключами, определенными как число Я также попытался установить ключи для строки.
Я отображаю значения в файле plist на виде, используя.
diaper = [[arrSettings objectAtIndex:0] objectForKey:@"Diaper Expenses"];
oil = [[arrSettings objectAtIndex:0] objectForKey:@"Oil Used"];
tree = [[arrSettings objectAtIndex:0] objectForKey:@"Wood Used"];
Этот код работает нормально, значения в словаре присваиваются переменным, и они отображаются. Пользователь может внести изменения, а затем нажать кнопку сохранения.
Я использую этот код для извлечения словарной части массива, чтобы я мог его обновить.
Назначение editDictionary работает. Я дважды проверил имена ключей, включая регистр, и это правильно.
editDictionary = [[NSMutableDictionary alloc] init];
editDictionary = [arrSettings objectAtIndex:0];
NSNumber *myNumber = [NSNumber numberWithFloat:diaperAmount];
[editDictionary setValue:myNumber forKey:@"Diaper Expenses"];
myNumber = [NSNumber numberWithFloat:oilAmount];
[editDictionary setValue:myNumber forKey:@"Oil Used"];
myNumber = [NSNumber numberWithFloat:treeAmount];
[editDictionary setValue:myNumber forKey:@"Wood Used"];
В этом примере я использовал nsnumber. Но я также попробовал поле xxxAmount как часть SetValue
вместо создания NSNumber. Ни одна реализация не работает.
Происходит несколько странных вещей. Иногда первые два оператора setvalue работают, но последнее значение setvalue завершается с ошибкой EXC_BAD_ACCESS. В других случаях первый setValue завершается с той же ошибкой. Я понятия не имею, почему первые два иногда работают.
Я не знаю, что делать дальше. Я пробовал несколько внедрений, и ни один из них не работает.
Кроме того, в отладчике, как я могу отобразить элементы editDictionary. Я вижу editDictionary, но не знаю, как отобразить отдельные элементы.