가 내가있는 NSMutableArray * recordsArray가, 키가 NSStrings가 있으며, 값이 사용자 지정 개체 수 있습니다사용자 정의 객체를 포함하는 NSMutableArray를 저장/보관하는 방법은 무엇입니까?
@interface DictRecord : NSObject{
}
@property (nonatomic, retain) NSString* word;
@property (nonatomic, retain) NSString *wordStatus;
코코아 : 저장 방법/I가 있음을 저장하려는 NSMutableArray를 포함하는 사용자 정의
개체를 보관 NSMutable 배열, 바람직하게는 비 - 바이너리 (약간 읽기 쉬운) 형식.
나는 문서를 통해 읽었으며 DictRecord로 인코딩 방법을 추가했습니다 :
- (void) encodeWithCoder: (NSCoder *)coder
{
[coder encodeObject: _word forKey:@"word" ];
[coder encodeObject: _wordStatus forKey:@"wordStatus" ];
}
- (id) initWithCoder: (NSCoder *) coder
{
self = [super init];
if (self) {
self.word = [coder decodeObjectForKey:@"word"];
self.wordStatus = [coder decodeObjectForKey:@"wordStatus"];
}
그럼 내가 사용하는 저장하려고 :
[recordsArray writeToFile:filePath atomically:YES];
파일이 저장되지만 나는 것을 볼 수 있습니다 그것은 비어 있습니다.
누구나 내가 생략 한 단계를 말하거나 내가 잘못했는지 알 수 있습니까?
감사
감사합니다. noa는 두 번째 방법을 사용하여 작동 시켰습니다. 내가 너를 올바르게 이해했다면, 그것은 데이터 구조를 재산 목록 작성 형식으로 완전히 재구성 한 경우였다. 나는 3 개의 NSString ([0] = key [1] = word [2] = wordstatus)의 각 레코드에 대해 NSArray를 만드는 것이 더 쉬워 보였으므로 이들 사전을 사용하지 않았다. 그것은 저축하고 적재하고, 사람이 읽을 수 있습니다 :) 사전을 사용하는 것이 유익할까요? –
예 : 스키마가 변경되면 새로운 데이터 파일과 오래된 데이터 파일이 여전히 의미가 있습니다. 이니셜 라이저에 기본값을 제공하면 누락 된 값이 기본값을 상속받을 수 있습니다. – paulmelnikow