Je crée une classe qui va stocker les statistiques pour mon jeu. Je voudrais stocker chaque score rond dans un tableau mutable qui peut être conservé et écrit dans un fichier. J'utilise le protocole NSCoding et implémente les méthodes encodeWithCoder et initWithCoder.Comment encoder et décoder un tableau de nombres en Objective-C?
#define masteredComponentsKey @"masteredComponents"
#define scoresKey @"scores"
-(void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:_masteredComponents forKey:masteredComponentsKey];
[encoder encodeObject:_scores forKey:scoresKey];
}
-(id)initWithCoder:(NSCoder *)decoder
{
self = [super init];
if (self)
{
_masteredComponents = [decoder decodeObjectForKey:masteredComponentsKey];
_scores = [decoder decodeObjectForKey:scoresKey];
}
return self;
}
Comme les tableaux sont des pointeurs vers des objets en Objective-C, je me dis que mes scores doivent être un nombre entier d'objets-Enveloppé comme un NSNumber ou NSValue. Cependant, ces objets n'implémentent pas le protocole NSCoding.
Alors, quelle est la meilleure façon de conserver un tas de nombres en utilisant NSCoding?
---- Ceci est mon premier post StackOverflow donc s'il vous plaît excuse tout le décorum inhabituel ----
Je recommande les méthodes '' NSArray' writeToFile: atomiquement: 'et' arrayWithContentsOfFile: 'méthodes pour écrire un tableau dans un fichier/la lecture d'un tableau à partir d'un fichier. – MaxGabriel
C'est une bonne idée et j'avais envisagé d'utiliser writeToFile: atomiquement. Le problème étant que je voudrais la flexibilité d'enregistrer et de restaurer des types de données primitifs tels que int, BOOL, double. – altyus