0
NSKeyedArchiver에 문제가있어 지금 당황스럽고 오류를 찾아 낼 수 없습니다.iOS NSKeyedArchiver unarchive가 빈 배열을 반환합니다.
나는 "Device"클래스의 객체로 구성된 가변 배열을가집니다. 내 AppDelegate에 나는 장치의 mutableArray을 유지하고 나는 다음과 같은 세 가지 기능을 가지고 : 나는 언 아카이빙 과정에서 빈 mutableArray가 계속
- (void) loadDataFromDisk {
self.devices = [NSKeyedUnarchiver unarchiveObjectWithFile: self.docPath];
NSLog(@"Unarchiving");
}
- (void) saveDataToDisk {
NSLog(@"Archiving");
[NSKeyedArchiver archiveRootObject: self.devices toFile: self.docPath];
}
- (BOOL) createDataPath {
if (docPath == nil) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString *docsDir = [paths objectAtIndex:0];
self.docPath = [docsDir stringByAppendingPathComponent: @"devices.dat"];
NSLog(@"Creating path");
}
NSLog(@"Checking path");
NSError *error;
BOOL success = [[NSFileManager defaultManager] createDirectoryAtPath: docPath withIntermediateDirectories: YES attributes: nil error:&error];
if (!success) {
NSLog(@"Error creating data path: %@", [error localizedDescription]);
}
return success;
}
. ARC를 사용하고 있습니다. ARC와 관련이 있는지 확실하지 않습니다.
안녕하세요, 공유 해 주셔서 감사합니다. 동일한 문제가 있지만 답변을 이해하지 못합니다. (... 루트 객체는 사전이고, 키 배열을 넣으시겠습니까? 그런 다음 사전에 보관 취소하거나 배열에 보관 하시겠습니까? – ColdSteel
전체 기능을 포함하여 도움이 되었기를 바랍니다. –
대단히 감사합니다! * 엄지 손가락까지 * – ColdSteel