Pergunta

Eu corri em um problema. Toda vez I'am começando meu aplicativo deixa de funcionar. código de Heres mim. O depurador Diz: [list count] trava o aplicativo. Eu não faço ideia. NSLog(@"%@", self.list); me dá um item como esperado ...

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]);

O arquivo que está aberto foi criado assim:

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];

Se você precisar de qualquer código futher me avise. Eu ficaria muito grata por qualquer ajuda:)

Foi útil?

Solução

Eu acredito que o problema é que você está codificando a classe Adicionando aqui:

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

que não é uma NSMutableArray ainda quando você está decodificação você está tentando recuperá-lo como um NSMutableArray aqui:

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

E eu estou supondo que sua classe Adicionando não é um Array.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top