NSKeyArchiver를 사용하여 계정에 파일을 저장하지만로드하려고하면 내 계정이 initWithCoder를 구현하지 못한다는 오류가 발생합니다. NSCoding :NSKeyUnarchiver를 사용하여 데이터를로드 할 때 응용 프로그램이 작동하지 않습니다.
-[Account initWithCoder:]: unrecognized selector sent to instance 0xa947a00
Account.m
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
if (self) {
_name = [aDecoder decodeObjectForKey:@"name"];
_accessToken = [aDecoder decodeObjectForKey:@"accessToken"];
_refreshToken = [aDecoder decodeObjectForKey:@"refreshToken"];
_selected = [aDecoder decodeBoolForKey:@"selected"];
lastUpdate = [aDecoder decodeObjectForKey:@"lastUpdate"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:_name forKey:@"name"];
[aCoder encodeObject:_accessToken forKey:@"accessToken"];
[aCoder encodeObject:_refreshToken forKey:@"refreshToken"];
[aCoder encodeBool:_selected forKey:@"selected"];
[aCoder encodeObject:lastUpdate forKey:@"lastUpdate"];
}
AccountStore.m 그리고 여기에 내가 그들을로드 :
NSString *path = [[self archivePath] stringByAppendingPathComponent:@"accounts.archive"];
accounts = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
if (!accounts) {
accounts = [[NSMutableArray alloc] init];
}
또한 이미 작동했음을 언급해야하지만 1 초에서 다른 것까지는 더 이상 작동하지 않습니다. NSKeyedArchiver가 올바르게 저장되었는지 확인했습니다.
네, 그렇게 생각합니다. 나는 프레임 워크를 추가했고 그 이후로는 더 이상 작동하지 않았다. – user1734282