为什么NSMutableArray Count会崩溃我的应用程序?

时间:2010-02-08 16:53:41

标签: iphone crash count nsmutablearray nskeyedarchiver

我遇到了一个问题。每次我开始我的应用程序它崩溃。这是我的代码。 调试器说:[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];

如果您需要任何进一步的代码,请告诉我。我非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:1)

我认为问题在于你在这里编码添加类:

[archiver encodeObject:adding forKey:@"TOWN"];

这不是一个NSMutableArray,当你解码时,你试图把它作为一个NSMutableArray在这里取回:

NSMutableArray *array = [unarchiver decodeObjectForKey:@"TOWN"];

我猜你的班级添加不是数组。