1
내 코드에 사용자 정의 객체 배열이 있습니다.사용자 정의 객체 배열 작성
이 배열을 문서 폴더의 파일에 쓰고 싶습니다. 이 답변 iPhone - archiving array of custom objects에 나는이 방법을 구현해야한다고 보았다
- (void)encodeWithCoder:(NSCoder *)aCoder;
- (id)initWithCoder:(NSCoder *)aDecoder;
그래서 그들을 구현 :
이
이 코드는 다음과 같습니다
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:self.data forKey:@"data"];
[encoder encodeObject:self.nome forKey:@"nome"];
[encoder encodeObject:self.celular forKey:@"celular"];
[encoder encodeObject:self.endereco forKey:@"endereco"];
[encoder encodeObject:self.horaConclusao forKey:@"horaConclusao"];
[encoder encodeObject:self.horaAtendimento forKey:@"horaAtendimento"];
}
- (id)initWithCoder:(NSCoder *)decoder {
self = [super init];
if (self) {
self.data = [decoder decodeObjectForKey:@"data"];
self.nome = [decoder decodeObjectForKey:@"nome"];
self.celular = [decoder decodeObjectForKey:@"celular"];
self.endereco = [decoder decodeObjectForKey:@"endereco"];
self.horaConclusao = [decoder decodeObjectForKey:@"horaConclusao"];
self.horaAtendimento = [decoder decodeObjectForKey:@"horaAtendimento"];
}
return self;
}
내 코드에서 나는이 방법을 사용하여 쓰기
이전 파일을 제거하는 방법-(NSString *) plistHistoryFile {
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:[nameFile stringByAppendingPathExtension:@"plist"]];
NSFileManager *filemgr = [NSFileManager defaultManager];
if ([filemgr fileExistsAtPath:path]) {
[filemgr removeItemAtPath:path error:&error];
}
return path;
}
나는이 방법으로 쓰기를 호출합니다 :
-(void) writeArrayToHistoryFile:(NSArray *) array {
NSString *path = [self plistHistoryFile];
NSLog(@"%@", path);
if ([array writeToFile:path atomically:NO]) {
NSLog(@"YES");
} else {
NSLog(@"NO");
}
}
로그에 대한 내 응답은 항상 NO입니다. 무엇을 잘못하고 있습니까?