nskeyedarchiver의 아카이브를 안정적으로 개방하고 편집 할 수 있습니까?
-
18-09-2019 - |
문제
아래 코드와 같은 것을 사용하여 객체의 NSDictionary를 장치에 저장하고 있습니다. 이 아카이브를 열고, 포함 된 사전 항목으로 드릴 다운하는 방법이 있습니까? 이상적으로, 데이터를 편집 하시겠습니까? 저축 할 때 수행 된 최적화로 인해 아카이브를 해석하기가 어렵 기 때문에 내 추측은 안정적이지 않습니다. 속성 목록 편집기. 예를 들어, 내 객체 중 일부가 유사한 NSString을 공유하면 NSString이 한 번만 보관 된 것으로 보입니다. NSDictionary의 구조를 내가 기대했던 것과 변경합니다.
- (BOOL)writeDataToFile {
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:myDictionary forKey:kDataKey];
[archiver encodeInteger:kDataFileVersion forKey:kDataVersionKey];
[archiver finishEncoding];
BOOL success = [data writeToFile:[self dataFilePath] atomically:YES];
[archiver release];
[data release];
return success;
}
해결책
진짜 질문은 "당신은해야합니까?"입니다. ... 아마 아니다.
물론 파일 형식을 구문 분석 할 수 있지만 그 형식은 구현 세부 사항입니다. ~할 수 있었다 변화하고 그만한 가치가 없습니다.
왜 이렇게하려고합니까? LA Core Data + SQLite를 증분 편집하려고합니까? 평범한 오래된 sqlite 자체가 당신의 문제를 해결합니까?
제휴하지 않습니다 StackOverflow