index 0 ist außerhalb der Grenzen für leere array-Fehler
Ich verstehe nicht, wie Sie zum Debuggen diese Fehler Meldung:
2011-02-01 20:45:56.151 NeMe[3206:207] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSMutableArray objectAtIndex:]: index 0 beyond bounds for empty array'
*** Call stack at first throw:
(
0 CoreFoundation 0x027deb99 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x0292e40e objc_exception_throw + 47
2 CoreFoundation 0x027d4695 -[__NSArrayM objectAtIndex:] + 261
3 NeighborMe 0x0000f617 -[NeighborMapViewController regionFromLocations] + 65
4 NeighborMe 0x0001047b -[NeighborMapViewController locationManager:didUpdateToLocation:fromLocation:] + 94
5 CoreLocation 0x02393870 -[CLLocationManager onClientEventLocation:] + 793
6 CoreLocation 0x0239218b OnClientEvent + 49
7 CoreLocation 0x023a8a83 _Z22CLClientInvokeCallbackP10__CLClient13CLClientEventPK14__CFDictionary + 47
8 CoreLocation 0x023a9b2c _Z27CLClientHandleDaemonDataFixP10__CLClientPK23CLDaemonCommToClientFixPK14__CFDictionary + 290
9 CoreLocation 0x023acb30 _Z24CLClientHandleDaemonDataP12__CFMachPortPvlS1_ + 1125
10 CoreFoundation 0x02720982 __CFMachPortPerform + 338
11 CoreFoundation 0x027bfff4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
12 CoreFoundation 0x02720807 __CFRunLoopDoSource1 + 215
13 CoreFoundation 0x0271da93 __CFRunLoopRun + 979
14 CoreFoundation 0x0271d350 CFRunLoopRunSpecific + 208
15 CoreFoundation 0x0271d271 CFRunLoopRunInMode + 97
16 GraphicsServices 0x030bd00c GSEventRunModal + 217
17 GraphicsServices 0x030bd0d1 GSEventRun + 115
18 UIKit 0x002eeaf2 UIApplicationMain + 1160
19 NeighborMe 0x00002818 main + 102
20 NeighborMe 0x000027a9 start + 53
21 ??? 0x00000001 0x0 + 1
)
terminate called after throwing an instance of 'NSException'
Es ist NSMutableArray in diesem code... also, wie ist das möglich?
- Ganz einfach: Ihr
NSMutableArray
leer ist und man versucht, die access-Objekte aus es. Wie sind Sie auf erstellen und füllen Sie es? - Ich weiß nichts über das iPhone-dev, aber es sieht aus wie Sie sind, Zugriff auf index 0 für ein leeres array, das offensichtlich nicht mit dem index 0.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie ein leeres array. Sie versuchte zu rufen
[array objectAtIndex:0]
. 0 ist über die Grenzen der einen leeren array ein (nicht überraschend – alles ist über die Grenzen für ein leeres array).NeighborMapViewController regionFromLocations
Methode.[NeighborMapViewController regionFromLocations]
. Keine Zeilennummer angegeben ist, in den Stapel. Aber wenn du es in der Xcode debugger, gehen Sie einfach auf das debugger-Fenster, und suchen Sie in der Stapel-Ablaufverfolgung, es sollte zeigen Sie die Linie.Bedeutet es, dass Anfang
[NeighborMapViewController regionFromLocations]
Sie versuchen zu indizieren eines NSMutableArray-Objekt. Das array hat keine Elemente in es -- es ist leer. Aber du bist offenbar versucht, Zugriff auf index 0, das wäre das erste element. Da gibt es kein erstes element, erhalten Sie eine Ausnahme.Wahrscheinlich der code, den Sie erwarten, dass ausgeführt wird, um Elemente hinzuzufügen, um das array noch nicht ausgeführt, oder Sie müssen einfach überprüfen Sie die Länge des array zu versuchen, Zugriff auf das element mit dem index 0. Es ist schwer zu sagen, ohne zu wissen, mehr über das, was du tust.
gdb Berichte der offset als 65 bytes in der Funktion, so ist es wahrscheinlich in einer der ersten Zeilen. Könnte man wahrscheinlich manuell untersuchen Sie den code der Funktion zu sehen, oder legen Sie einen Haltepunkt auf die erste Zeile der Funktion und Schritt hindurch.
War ich zu sehen, dieser Fehler jedoch nicht als Ausnahme, sondern nur in der Ausgabe-Navigator. Die Lösung war, einfach neu starten XCode, dann war der Fehler Weg.
Als Kevin Ballard, dieser Fehler wird ausgelöst, wenn Sie Fragen, für das element mit dem index X, der außerhalb von array-Grenzen, neben der Suche nach
[array objectAtIndex: X]
dieser Fehler kann auch verursacht von der modernen syntaxarray[X]