Dans ma classe Row, j'ai la méthode initWithCoder et tout ce qui est restauré dans cette méthode fonctionne bien, mais seulement dans la méthode. Une fois la méthode appelée, je perds un tableau de sons dans ma classe Row. La classe sounds possède également la méthode initWithCoder, et le son est lu correctement, mais uniquement dans la méthode initWithCoder de la classe Row. Après le décodage de l'objet Row, la matrice de sons disparaît complètement et ne peut plus être appelée.Où sont passés mes sons?
Voilà ma source pour le initWithCoder:
- (id) initWithCoder:(NSCoder *)coder {
...
soundArray = [coder decodeObjectForKey:@"soundArray"];
NSLog(@"%d",[soundArray count]);
return self;
}
le journal montre le compte que 8 comme il se doit (ce qui est tout Désarchivage). Ensuite, l'objet de ligne que je crée est assigné. Et l'objet de ligne résultant n'a plus de soundArray.
[NSKeyedArchiver archiveRootObject:row toFile:@"DefaultRow"];
...
row = [NSKeyedUnarchiver unarchiveObjectWithFile:@"DefaultRow"];
Alors maintenant, quand j'appelle soundArray, il plante.
//ERROR IS HERE
NSLog(@"%d",[[row soundArray] count]);
Aide s'il vous plaît (soundArray est un NSMutableArray).
Vous venez de résoudre tous mes problèmes. Merci Monsieur. –
Dane Man: Ne sautez pas la documentation avec laquelle vous êtes lié. Lisez-le et lisez tout. Il est nécessaire de lire pour chaque programmeur Cocoa et Cocoa Touch. –