배열을 채웠습니다.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에 대한 할당이 작동합니다. 나는 사건을 포함하여 키 이름을 두 번 확인했는데 그 말이 맞습니다.
나는의 NSNumber를 사용했습니다이 예에서는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를 만드는 대신 SetValue 의 일부로 xxxAmount 필드를 시도했습니다. 어떤 구현도 작동하지 않습니다.
몇 가지 이상한 일이 발생합니다. 때로는 처음 두 setvalue 문은 작동하지만 마지막 setvalue는 EXC_BAD_ACCESS 실패로 실패합니다. 다른 경우에는 첫 번째 setValue가 동일한 오류로 실패합니다. 나는 처음 두 사람이 때때로 일하는 이유를 모른다.
나는 다음에해야할 일이 없어졌습니다. 나는 여러 가지 함축을 시도했지만 그 중 아무 것도 작동하지 않습니다. 또한 디버거에서 어떻게 editDictionary 요소를 표시 할 수 있습니까? editDictionary를 볼 수는 있지만 개별 요소를 표시하는 방법을 모르겠습니다.
긴급한 경우 코드 형식을 지정하십시오. – miku