2016-09-08 15 views
0

plist 파일을 편집하는 코드가 있습니다. 그러나 코드가 실행되면 plist 파일은 변경되지만 다른 사전은 삭제됩니다. 당신은 내가 의미하는 것을보기 위해 이미지들을 볼 수 있습니다.프로그래밍 방식으로 plist를 편집하는 방법은 무엇입니까?

편집 된 단어를 보려면 사전 "항목 1"과 문자열 "이름"을 확인하십시오. "Second"에서 "newVALUE"로 변경해야한다는 것을 알 수 있습니다. PLIST 만들 때

원래 PLIST는 PLIST의 이미지이다. 그러면 예상 plist입니다. plist는 다음과 같습니다. 그리고 편집 plist는 코드 적용 후 plist입니다. 이들은

답변

1

는 원래 PLIST는 사전의 배열을 포함

Click to see the images 이미지입니다

NSString *plistPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
plistPath = [plistPath stringByAppendingPathComponent:@"PassaveData.plist"]; 

NSMutableArray* newContent = [[NSMutableArray alloc]initWithContentsOfFile:plistPath]; 
NSMutableDictionary *Dict = [[NSMutableDictionary alloc]initWithDictionary:[newContent objectAtIndex:1]]; 
[Dict setValue:@"newVALUE" forKey:@"name"]; 
[Dict writeToFile:plistPath atomically:YES]; 

:

는 코드입니다. 새 사전을 만든 다음 원본 배열 기반 plist를 새 사전 하나만 덮어 씁니다.

로드 된 배열을 업데이트 된 사전으로 업데이트 한 다음 전체 업데이트 된 배열을 작성해야합니다.

NSMutableArray *newContent = [[NSMutableArray alloc] initWithContentsOfFile:plistPath]; 
NSMutableDictionary *dict = [newContent[1] mutableCopy]; 
dict[@"name"] = @"newVALUE"; 
newContent[1] = dict; 
[newContent writeToFile:plistPath atomically:YES]; 

배열 및 사전에 최신 구문을 사용합니다.

+0

원래의 .piist 파일이 아닌 문서 디렉토리에만 해당 업데이트 데이터가 있다고 생각합니다. –

+0

처음 빌드 후 앱 이름을 변경하고 싶습니다. 어떻게 변경할 수 있습니까? 나는 이미 시도했다 [plistDict setValue : @ "com.xyz.Getdata"forKey : @ "CFBundleIdentifier"]; [plistDict setValue : @ "Getdata"forKey : @ "CFBundleName"]; [plistDict setValue : @ "MyProject"forKey : @ "CFBundleDisplayName"]; –

+0

@BhumeshPurohit 앱의 리소스 번들에있는 파일을 업데이트 할 수 없습니다. 읽기 전용입니다. – rmaddy