Objective-C 추가/편집 .Plist 파일
-
19-09-2019 - |
문제
writetofile : 원자 적으로, 기존 .plist에 데이터를 추가합니까? .Plist에서 값을 수정할 수 있습니까? 앱을 다시 컴파일하여 변경에 적용해야합니까?
내 앱에 Custom .Plist 목록이 있습니다. 구조는 다음과 같습니다.
<array>
<dict>
<key>Title</key>
<string>MyTitle</string>
<key>Measurement</key>
<dict>
<key>prop1</key>
<real>28.86392</real>
<key>prop2</key>
<real>75.12451</real>
</dict>
<key>Distance</key>
<dict>
<key>prop3</key>
<real>37.49229</real>
<key>prop4</key>
<real>58.64502</real>
</dict>
</dict>
</array>
배열 태그는 동일한 구조의 여러 항목을 보유합니다. 기존 .plist에 항목을 추가해야합니다. 그게 가능합니까? 그렇다면 UIView를 쓸 수 있습니다.
*편집 - 좋아, 나는 단지 그것을 추가하지 않으면 초과 쓸 수 있기를 바라면서 writetofile을 시도했다. 이상하게도 다음 코드는 읽기와 쓰기 중에 다른 경로를 선택합니다.
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
.plist 파일은 내 프로젝트에 있습니다. 나는 그것을 읽을 수 있습니다. 내가 그것을 쓸 때, 그것은 .plist 파일을 만들고 /users/.../library/에 저장하고 있습니다! 이것이 누구에게나 의미가 있습니까?
해결책
나는 그것을 가정 할 것이다 plist
응용 프로그램과 함께 제공됩니다 read only
- 앱 번들 안에 있습니다.
모든 업데이트는 사용자 별 디렉토리에 저장되므로 모든 사용자가 고유 한 특정 수정을 갖도록합니다.
다른 팁
물론 자신의 .plist 파일을 만들고 쓸 수 있습니다. 에 의해 NSArray *arrayPath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *userFile=[[arrayPath objectAtIndex:0] stringByAppendingString:@"/whatever.plist"];
, 당신은 그것을 작성/편집 할 수 있습니다.
그러나 같은 질문도 있습니다. 전체 .plist 파일을 덮어 쓰는 대신 특정 키에 대한 값을 어떻게 편집합니까?
예를 들어, 키 "제목"에 대한 "mytitle"값을 변경하려면 : <key>Title</key>
<string>MyTitle</string>
"해바라기"로, 코드에서 어떻게 할 수 있습니까?