我已經使用填充了一個數組。如何更新NSMutableDictionary。我的代碼不起作用
arrSettings = [[NSMutableArray alloc] initWithContentsOfFile:[self settingsPath]];
該文件是一個plist,它的根作爲一個數組,然後是一個三個三個鍵定義爲數字的字典。我也嘗試將鍵設置爲字符串。
我使用顯示在視圖上的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,但我不知道如何顯示各個元素。
緊急,請格式化您的代碼.. – miku 2010-05-30 05:42:07