我遇到了一个问题。每次我开始我的应用程序它崩溃。这是我的代码。
调试器说:[list count]
崩溃了应用程序。我不知道。 NSLog(@"%@", self.list);
按预期给我一个项目......
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
data = [[NSData alloc] initWithContentsOfFile:filePath];
unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
NSMutableArray *array = [unarchiver decodeObjectForKey:@"TOWN"];
[unarchiver finishDecoding];
[unarchiver release];
[data release];
}
self.list = array;
NSLog(@"%@", self.list);
NSLog(@"count %i", [list count]);
打开的存档就是这样创建的:
Adding *adding = [[Adding alloc] init];
adding.nummer = 1;
adding.stadt = stadt.text;
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]
initForWritingWithMutableData:data];
[archiver encodeObject:adding forKey:@"TOWN"];
[archiver finishEncoding];
[data writeToFile:[self dataFilePath] atomically:YES];
如果您需要任何进一步的代码,请告诉我。我非常感谢任何帮助:)
答案 0 :(得分:1)
我认为问题在于你在这里编码添加类:
[archiver encodeObject:adding forKey:@"TOWN"];
这不是一个NSMutableArray,当你解码时,你试图把它作为一个NSMutableArray在这里取回:
NSMutableArray *array = [unarchiver decodeObjectForKey:@"TOWN"];
我猜你的班级添加不是数组。