ho il seguente codice:NSDictionary allKeys crash - non può capire le circostanze relazione crash
- (Item *) getRandomItem {
if (itemIDs == nil) {
[self parse];
}
NSArray * allKeys = [allItems allKeys];
int seed = arc4random()%[allKeys count];
return [self getItemByID:[allKeys objectAtIndex:seed]];
}
A volte si blocca su App dal vivo, ma non siamo in grado di riprodurre l'incidente. Ho cercato di analizzare il report e capire quale potrebbe essere la causa del crash, ma non ho avuto successo. Qualsiasi modo in cui provo a manomettere l'oggetto allItems
per produrre un arresto anomalo, si traduce in un errore diverso da quello riportato qui.
Vorrei un aiuto capire in quali circostanze si sarebbe verificato l'incidente seguente:
Hardware Model: iPhone3,1
Code Type: ARM (Native)
Parent Process: launchd [1]
OS Version: iPhone OS 5.0.1 (9A405)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000010
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x3427eb30 _class_isInitialized
1 libobjc.A.dylib 0x3427e8d6 _class_initialize
2 libobjc.A.dylib 0x3427e88e prepareForMethodLookup
3 libobjc.A.dylib 0x3427e76a lookUpMethod
4 libobjc.A.dylib 0x3427e008 objc_msgSend_uncached
5 CoreFoundation 0x33f7c020 CFRetain
6 CoreFoundation 0x33f85bac +[__NSArrayI __new::]
7 CoreFoundation 0x33f85ac6 -[__NSPlaceholderArray initWithObjects:count:]
8 CoreFoundation 0x33f85806 +[NSArray arrayWithObjects:count:]
9 CoreFoundation 0x33fa0e92 -[NSDictionary allKeys]
10 AClockworkBrain 0x0008f46e -[ItemManager getRandomItem] (ItemManager.m:360)
......
Grazie.
Stai usando ARC o no? Questo sembra essere un errore relativo alla memoria. –
Aspetta, stai cercando di aggiungere un intero crudo al tuo dizionario? Stai tentando di inviare un messaggio a un oggetto alla memoria 0x10, che sembra qualcosa che sarebbe un normale numero intero nella tua applicazione. –
Richard, non stiamo usando ARC. – dimitrios