문제

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> "해바라기"로, 코드에서 어떻게 할 수 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top