Stürzt mit [__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array Fehler
Bin ich immer crash reports über Benutzer der iOS-app aber abstürzt kann ich nicht nachvollziehen mich, noch kann ich nachvollziehen, die Fehler zurück zu einer Linie, die in meinem eigenen code (außer er stammt aus der Linie 14 in main.m, aber dies ist die Standard-Anwendung-Erstellung von iOS-apps. Unter dem einen crash-Bericht, den ich erhielt.
Verstehen, dass irgendwann auch ein Objekt mit dem index 0 abgerufen wird aus einem leeren Array. Aber da es scheint nicht zu zeigen, um meine eigene code ist, kann es ein bug in iOS? (Es passiert auf unterschiedlichen Plattformen und mit verschiedenen iOS-Versionen).
Ich hoffe jemand hat eine Idee, was passiert, oder kann mir in die richtige Richtung.
Danke.
CRASH-BERICHT:
Incident Identifier: [TODO]
CrashReporter Key: [TODO]
Process: Mary Black [797]
Path: /var/mobile/Applications/28A68F8B-294E-4B86-9E75-ED5484E5EF4D/Mary Black.app/Mary Black
Identifier: net.broset.Mary-Black
Version: 225
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2011-10-14 03:47:32 +0000
OS Version: iPhone OS 5.0 (9A334)
Report Version: 104
Exception Type: SIGTRAP
Exception Codes: #0 at 0x35b07848
Crashed Thread: 0
Application Specific Information:
*** Terminating app due to uncaught exception \\\'NSRangeException\\\', reason: \\\'*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array\\\'
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x00010848 __kill + 8
1 CoreFoundation 0x000b9987 __handleUncaughtException + 75
2 libobjc.A.dylib 0x000092d1 _objc_terminate + 129
3 libc++abi.dylib 0x000043c5 _ZL19safe_handler_callerPFvvE + 77
4 libc++abi.dylib 0x00004451 operator delete(void*) + 1
5 libc++abi.dylib 0x00005825 __cxa_current_exception_type + 1
6 libobjc.A.dylib 0x00009235 objc_exception_rethrow + 13
7 CoreFoundation 0x0000f545 CFRunLoopRunSpecific + 405
8 CoreFoundation 0x0000f3a5 CFRunLoopRunInMode + 105
9 GraphicsServices 0x00003fed GSEventRunModal + 157
10 UIKit 0x00031743 UIApplicationMain + 1091
11 Mary Black 0x00002fa7 main (main.m:14)
- Post gesamte crash-log ( von anderen threads ) mit Blick auf das crash-log sagt nicht viel, wo es abgestürzt ist. sehr unwahrscheinlich, dass seine Fehler in OS.
- Sind Sie mit diesem mit UICollectionView??
- Ich bin immer eine ähnliche Spur, wenn Sie versuchen zu ändern, eine collectionView ist .collectionViewLayout Eigenschaft. Sie erwähnt UICollectionView; das heißt, Sie haben eine Idee?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine Möglichkeit zum Debuggen dieses Problems ist das hinzufügen einer Symbolischen Haltepunkt auf objectAtIndex: Dies kann dazu führen viele trifft zu objectAtIndex: bevor der debugger schlägt Sie nach, aber es ist garantiert, um es zu finden.
Schritte in Xcode 4:
zur Laufzeit, wenn Sie können nicht sagen, welche objectAtIndex: Sie schlagen, bewegen Sie den Schieberegler am unteren Rand den Debug-Navigator, den ganzen Weg auf der rechten Seite.
Diese wird, Stoppt der debugger an die betreffende Zeile:
Xcode Bearbeiten/Schema/Diagnose/Log Ausnahmen.
Dieser Fehler bedeutet, dass Sie versuchen, ein Objekt aus einem NSArray von einer position, wo kein Objekt gefunden wird. In anderen Worten: wenn der index 0 ist, als dein array leer ist.
Und wahrscheinlich ist es Ihr code, so wie main() ruft den code.
Müssen Sie suchen Sie Ihr Projekt für alle Verwendungen von
objectAtIndex:
- und Regel-aus jeder als Täter. Stellen Sie sicher, Sie sind nie Berufung auf ein leeres array.Noch ein Tipp: Wenn Sie wissen, dass Sie nur wollen, um das Letzte Objekt in einem array oder Sie wissen das array wird immer nur ein Objekt aufnehmen, können Sie
lastObject
stattobjectAtIndex:
-- es ist sicherer, weil es nicht eine Ausnahme werfen, wenn Sie noch brauchen, um zu überprüfen, fürnil
.