1
我將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];
}
另外我應該提到,它已經工作,但從一秒鐘到另一秒,它不再。我檢查NSKeyedArchiver是否正確保存:它確實。
是的,我認爲就是這樣。我添加了框架,從那以後它不再工作了 – user1734282 2013-03-18 16:44:16