- (void)setToInitialStateMain
{
[super clearBoard];
if (_data[@"StoneOne"] != nil) {
NSDictionary* stoneOne = _data[@"StoneOne"];
NSNumber* c = stoneOne[@"Column"];
NSNumber* r = stoneOne[@"Row"];
NSInteger column = [c intValue];
NSInteger row = [r intValue];
[_boardCol addObject:[NSNumber numberWithInt:column]];
[_boardRow addObject:[NSNumber numberWithInt:row]];
}
}
Ainsi, le @"StoneOne"
, @"Column"
et @"Row"
clés proviennent d'un fichier plist NSDictionary
. Lorsque j'essaie de convertir le NSNumber @"Column"
en NSInteger
, tout fonctionne bien.Impossible d'ajouter objet NSNumber à NSMutableArray
Maintenant, la ligne [_boardCol addObject:[NSNumber numberWithInt:column]];
est correcte en termes de 'colonne' étant l'entier correct (2). Mais, lors de la configuration d'un point d'arrêt à la fin de l'appel de méthode pour examiner _boardCol
(ainsi que _boardRow
), les deux variables d'instance NSMutableArray*
lisent nil
. Pourquoi donc?
vos deux NSMutableArrays ont-ils été initialisés correctement? – zfetters
Comment voulez-vous dire? Je les ai juste écrits en tant que variables d'instance à l'intérieur des accolades de mon fichier Modèle @implementation. Est-ce que ça ne les initialise toujours pas? – Frank
pas besoin d'allouer et de les initialiser quelque part avant qu'ils puissent être utilisés, plus que probablement juste dans la méthode init de votre classe – zfetters