J'ai un problème étrange avec des valeurs variables. Voici le code (il fait partie d'une méthode de classe):iphone nslog données corrompues
MyAppDelegate *pDelegate = [[UIApplication sharedApplication] delegate];
SomeDictionaryData *appData = [pDelegate.theData retain];
NSLog(@"my instance var: %@",cardIndex); // outputs "my instance var: 4"
NSDictionary *currentCard = [[NSDictionary alloc] initWithDictionary:[appData.cards objectAtIndex:cardIndex]];;
// the above line breaks the app
[currentCard release];
[appData release];
J'utilise le débogueur avec le objc_exception_throw
point d'arrêt. L'entrée reçue par objectAtIndex
indique qu'il a la valeur = 13760640. L'attribut cards
de appData est un NSArray
et il n'a clairement pas plus de dix millions d'éléments, donc je reçois une erreur hors limites. J'ai essayé de lancer avec (int)cardIndex
sans de meilleurs résultats. Chose étrange est un code similaire dans d'autres travaux de classe bien.
Il s'agit de données que je souhaite utiliser dans toute mon application. Par conséquent, une classe Model est initialisée dans AppDelegate sous la forme theData
et est ensuite accessible par différents ViewControllers. Cette erreur apparaît après un accès réussi sur un autre ViewController (que l'on conserve/libère également).
Toute aide sera appréciée.
Merci mec! Bien que je reçois un avertissement «récepteur invalide de type int». – mga
Essayé casting comme (NSUInteger) et toujours recevoir l'avertissement. Tout le reste fonctionne bien ... Je n'aime pas les avertissements. – mga
Tout droit! Converti toutes les références nécessaires à NSNumber. Merci! – mga