2011-02-11 7 views
0

내 앱에서 plist를 작동하는 데 문제가 있습니다. 사용자 지정 파일을 만들었으며이 파일을 문서 폴더에 복사하면 값을 추가 할 수 있습니다. 나는 지금까지 모든 것을 설정했고, 모든 것을 값으로 편집하고 모든 값을 저장하면, 내가 방금 저장 한 것이 무엇인지 어떻게 변하는 것인가, 모든 것이 잘 나타나고 있습니다. 내가이 문제를 해결하기 위해 솔기를 잡으면 서이 문제에 조금 미치게 될 것이지만 그것은 계속 실패한다. 배열 항목 0 - - 사전 설정 - 문자열 값 - 또한 내 PLIST 형식은 루트입니다 문자열 항목 1 - 사전 설정 - 문자열 값 - 문자열 항목 1 - 사전 설정 - 문자열 값 - 문자열 OtherValue - 문자열Plist NSMutableArray 및 NSMutableDictionary 문제

루트 파일 용 변수 NSMutableArray * settingsArray;

응용 프로그램이 테이블 뷰에 있고 텍스트 상자가 하나 인 세부 정보보기가 있습니다. cellForRowAtIndexPath에있어서, 상기 방법 didselectrowatindex 내부

// Configure the cell. 
cell.textLabel.text = [[self.settingsArray objectAtIndex:indexPath.row] objectForKey:@"Setting"]; 
return cell; 

내부

-(void)viewdidload{ 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"settings.plist"]; 
NSMutableArray *tmpArray = [[NSMutableArray alloc] initWithContentsOfFile:path]; 
self.settingsArray = tmpArray; 
[tmpArray release]; 
} 

drinkDetailViewController.settingsDictionary = [self.settingsArray objectAtIndex:indexPath.row]; 

Detailview 변수 detailview viewwillappear의 방법에서

NSMutableDictionary *settingsDictionary; 
NSMutableArray *settingValArray; 

settingNamelabel.text = [settingsDictionary objectForKey:@"Setting"]; 
valueTextField.text = [settingsDictionary objectForKey:@"Value"]; 

이것은이 문제는 당신의 저장 방법, 당신이 사전의 전체 배열에 대해 "값"에 대한 값을 설정하는 것입니다, 그리고 개인 사전을위한 방법을

- (IBAction) save: (id) sender {  
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"settings.plist"]; 
NSMutableArray *tmpArray = [[NSMutableArray alloc] initWithContentsOfFile:path]; 
self.settingValArray = tmpArray; 

[settingValArray setValue:valueTextField.text forKey:"Value"]; 
[settingValArray writeToFile:path atomically:YES]; 
} 

답변

1

을 저장할 수있다 . 일

[[settingValArray objectAtIndex:dictionaryIndex] setValue:valueTextField.text forKey:"Value"]; 
[settingValArray writeToFile:path atomically:YES]; 
+0

감사 : 당신이 주변에 특정 사전의 인덱스를 유지하는 경우

, 당신은 뭔가를 할 수 있습니다. 나는 내가 그런 것을해야한다는 것을 알았지 만 코드에 대해서는 확신 할 수 없었다. –