Ich habe ein seltsames Problem mit variablen Werten. Dies ist der Code (es ist Teil einer Klasse-Methode):iphone nslog korrumpierte Daten
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];
ich den Debugger mit dem objc_exception_throw
Breakpoint verwenden. Die Eingabe von objectAtIndex
in dort zeigt als Wert = 13760640. Das cards
Attribut von appData ist ein NSArray
und es hat eindeutig nicht zehn Millionen + Elemente, so dass ich einen out of bounds Fehler bekommen. Ich habe versucht, mit (int)cardIndex
ohne bessere Ergebnisse zu werfen. Sonderbare Sache ist ein ähnlicher Code in einer anderen Klasse funktioniert gut.
Dies sind einige Daten, die ich in meiner App verwenden möchte, also habe ich eine Model-Klasse, die in der AppDelegate als theData
initialisiert wird und dann von verschiedenen ViewControllern zugegriffen wird. Dieser Fehler tritt nach einem erfolgreichen Zugriff auf einen anderen ViewController auf (der auch beibehalten/freigegeben wird).
Jede Hilfe wird geschätzt.
Danke, Alter! Obwohl ich eine "ungültige Empfängerart int" Warnung erhalte. – mga
Versucht Casting als (NSUInteger) und immer noch die Warnung erhalten. Alles andere funktioniert aber gut ... Ich mag keine Warnungen. – mga
Direkt dran! Konvertiert alle notwendigen Verweise auf NSNumber. Vielen Dank! – mga