Je ne comprends pas comment déboguer ce message d'erreur:
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'
4 Réponses :
Vous avez un tableau vide. Vous avez essayé d'appeler [Array ObjectAindex: 0] code>. 0 est au-delà des limites d'un tableau vide (pas surprenant - tout est au-delà des limites d'un tableau vide). P>
@Equinox: Vérifiez votre voisin de voisinage de la régionFromLocations code> méthode.
@Equinox: C'est dans [Region de voisinageViewControllerFromLocations] code>. Aucun numéro de ligne n'est donné dans la pile. Mais si vous l'avez dans le débogueur Xcode, allez simplement à la fenêtre du débogueur et regardez dans la trace de la pile, cela devrait vous montrer la ligne.
ok, je pense que je l'ai eu .. une question à nouveau .. Quand est le responsable de l'emplacement: (cllouerManager *) Directeur DidupdateToLocation: (CLLOCATION *) NOUVELLOCATION DUBLOCATION: (CLLOCATION *) OLDLLOCATION {appelé?
On l'appelle quand un nouvel emplacement est trouvé. Vous démarrez habituellement le processus de localisation et dès que l'emplacement de base pense qu'il connaît une approximation de l'endroit où vous êtes, il appelle cette méthode.
Cela signifie que tôt dans Probablement le code que vous attendez d'avoir exécuté pour ajouter des éléments à la matrice n'a pas encore exécuté, ou il vous suffit de vérifier la longueur de la matrice avant d'essayer d'accéder à l'élément à l'index 0. Il est difficile de dire sans en sachant plus sur ce que vous faites. p>
GDB rapporte le décalage comme 65 octets dans la fonction, il est donc probable dans l'une des premières lignes. Vous pouvez probablement inspecter manuellement le code de la fonction pour voir ou définir un point d'arrêt sur la première ligne de la fonction et la passer à travers. P> [VERSERMORORMAPVIEWCONTROLLER REGIONFROCATIONS] CODE> Vous essayez d'indexer un objet NsmutableRayRay. Ce tableau a zéro des éléments dedans - il est vide. Mais vous essayez apparemment d'accéder à l'index 0, qui serait le premier élément. Comme il n'y a pas de premier élément, vous obtenez une exception. P>
Je n'ai vraiment aucune idée d'où ce tableau est
Je suppose que Meighborme est votre application et voisinapapViewController est votre code - c'est la seule chose dans la trace de la pile qui n'est évidemment pas une API d'Apple. Si vous voulez l'aide de la rétrécir, postez le code de [voisinapapViewController RegionDromLocations].
Je voyais cette erreur, cependant, pas comme une exception, mais uniquement dans le navigateur d'émission. La solution était de simplement redémarrer Xcode, puis l'erreur était partie. P>
Comme Kevin Ballard a dit, cette erreur est lancée lorsque vous demandez l'élément à l'index x qui est au-delà des limites de tableau, en plus de rechercher [Array ObjectAindex: x] code>, cette erreur peut être même causé à partir de la syntaxe moderne tableau [x] code> p>
Simple: votre
NsmutableArray code> est vide et vous essayez d'y accéder aux objets. Comment créez-vous et remplissez-le?Je ne sais rien sur iPhone Dev, mais il semble que vous accédez à l'index 0 d'un tableau vide, ce qui n'a évidemment aucun index 0.