2011-09-21 9 views
6

Otrzymuję wiele raportów o awariach dotyczących jednej awarii, ale nie mam pojęcia, od czego zacząć, ponieważ nie jestem w stanie samodzielnie jej odtworzyć, a raporty o awariach zostały wysłane anonimowo.Awaria aplikacji z NSRangeException _PFBatchFaultingArray za pomocą NSFetchedResultsController

Jak widać, ma to coś wspólnego z NSFetchedResultsController używam.

Oto fragment tego raportu o awarii. Jedyną różnicą między raportami jest zakres indeksów [...]index (someLargeIndex) beyond bounds (1)[...]. Reszta pozostaje taka sama w każdym pojedynczym raporcie.

Application Specific Information: 
*** Terminating app due to uncaught exception \\\'NSRangeException\\\', reason: \\\'*** -[_PFBatchFaultingArray objectAtIndex:]: index (262144) beyond bounds (1)\\\' 

Thread 0 Crashed: 
0 libsystem_kernel.dylib    0x31d1e00c __kill + 8 
1 libsystem_c.dylib     0x32ac4f95 raise + 17 
2 AppName        0x0003d961 uncaught_exception_handler (PLCrashReporter.m:137) 
3 CoreFoundation      0x349b57d3 __handleUncaughtException + 239 
4 libobjc.A.dylib      0x33f9506b _objc_terminate + 103 
5 libstdc++.6.dylib     0x3338ae3d __cxxabiv1::__terminate(void (*)()) + 53 
6 libstdc++.6.dylib     0x3338ae91 std::terminate() + 17 
7 libstdc++.6.dylib     0x3338af61 __cxa_throw + 85 
8 libobjc.A.dylib      0x33f93c8b objc_exception_throw + 71 
9 CoreFoundation      0x349b5491 +[NSException raise:format:arguments:] + 69 
10 CoreFoundation      0x349b54cb +[NSException raise:format:] + 35 
11 CoreData       0x34820fc5 -[_PFBatchFaultingArray objectAtIndex:] + 133 
12 CoreData       0x3485e5fb -[_PFMutableProxyArray objectAtIndex:] + 55 
13 CoreData       0x348e00f7 +[NSFetchedResultsController(PrivateMethods) _insertIndexForObject:inArray:lowIdx:highIdx:sortDescriptors:] + 99 
14 CoreData       0x348e0605 -[NSFetchedResultsController(PrivateMethods) _postprocessInsertedObjects:] + 353 
15 CoreData       0x348e0ecf -[NSFetchedResultsController(PrivateMethods) _postprocessUpdatedObjects:] + 507 
16 CoreData       0x348e29c7 -[NSFetchedResultsController(PrivateMethods) _managedObjectContextDidChange:] + 1239 
17 Foundation       0x35f46183 _nsnote_callback + 143 
18 CoreFoundation      0x3498420f __CFXNotificationPost_old + 403 
19 CoreFoundation      0x3491eeeb _CFXNotificationPostNotification + 119 
20 Foundation       0x35f435d3 -[NSNotificationCenter postNotificationName:object:userInfo:] + 71 
21 CoreData       0x34884c07 -[NSManagedObjectContext(_NSInternalNotificationHandling) _postObjectsDidChangeNotificationWithUserInfo:] + 55 
22 CoreData       0x34884fcd -[NSManagedObjectContext(_NSInternalChangeProcessing) _createAndPostChangeNotification:withDeletions:withUpdates:withRefreshes:] + 141 
23 CoreData       0x34845251 -[NSManagedObjectContext(_NSInternalChangeProcessing) _postRefreshedObjectsNotificationAndClearList] + 77 
24 CoreData       0x34844f7f -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] + 1815 
25 CoreData       0x348863a5 -[NSManagedObjectContext processPendingChanges] + 17 
26 CoreData       0x3482027f _performRunLoopAction + 127 
27 CoreFoundation      0x3498ca35 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 17 
28 CoreFoundation      0x3498e465 __CFRunLoopDoObservers + 413 
29 CoreFoundation      0x3498f75b __CFRunLoopRun + 855 
30 CoreFoundation      0x3491fec3 CFRunLoopRunSpecific + 231 
31 CoreFoundation      0x3491fdcb CFRunLoopRunInMode + 59 
32 GraphicsServices     0x3354641f GSEventRunModal + 115 
33 GraphicsServices     0x335464cb GSEventRun + 63 
34 UIKit        0x3357dd69 -[UIApplication _run] + 405 
35 UIKit        0x3357b807 UIApplicationMain + 671 
36 AppName        0x00002b69 main (main.m:15) 

Przykro mi, ale nie mogę podać więcej informacji. Wszelkie sugestie, jak zacząć?

+0

[_PFBatchFaultingArray obiektAtIndex:]: indeks (262144) poza granicami (1) Ma to związek z tablicami, dostęp do 262144 indeksu tablicy _PFBatchFaultingArray, który ma tylko 2 elementy (granice 1). Powiedziałbym, spójrz na inne wątki twojego raportu o awarii. – ARC

+0

Wymyśliłeś to jeszcze? Nigdzie nie mogę znaleźć odpowiedzi –

Odpowiedz

1

spróbuj spojrzeć w ciebie cellForRowAtIndexPath: lub gdziekolwiek będziesz używał wyników z NSFetchedResultsController. Tam, należy użyć następującego kodu, aby zobaczyć ile wyniki są dostępne dla Ciebie:

NSArray *sections = fetchController.sections; 
int someSection = 0; 
id <NSFetchedResultsSectionInfo> sectionInfo = [sections objectAtIndex:someSection]; 
numberOfObjects = [sectionInfo numberOfObjects]; 

a następnie udać się do miejsca, w którym staramy się informacje, prawdopodobnie gdzie zadzwonić:

[fetchedResultsController objectAtIndexPath:indexPath]; 

i zobaczyć, jakie przechodzą przez:

NSLog(@"row to be retrieved: %d", indexPath.row); 
[fetchedResultsController objectAtIndexPath:indexPath]; //here comes the crash 

Ostatecznie, można sprawdzić

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

, aby zobaczyć, ile wierszy jest zwracanych.

Powiązane problemy