を使用して配列にデータを入力しました。
arrSettings = [[NSMutableArray alloc] initWithContentsOfFile:[self settingsPath]];
このファイルは、ルートを配列として持つ plist と、数値として定義された 3 つの 3 つのキーを持つディクショナリです。また、キーを文字列に設定しようとしました。
を使用して、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 を使用しました。しかし、NSNumber を作成する代わりに、SetValue の一部として xxxAmount フィールドも試しました。どちらの実装も機能しません。
いくつかの奇妙なことが起こります。最初の 2 つの setvalue ステートメントが機能する場合もありますが、最後の setvalue は EXC_BAD_ACCESS エラーで失敗します。それ以外の場合は、最初の setValue が同じエラーで失敗します。最初の2つが時々機能する理由がわかりません。
私は次に何をすべきか途方に暮れています。いくつかの実装を試しましたが、どれも機能しません。また、デバッガーで editDictionary 要素を表示するにはどうすればよいですか。editDictionary は見えますが、個々の要素を表示する方法がわかりません。