我有一個TableView控制器類,它使用提取的結果控制器來顯示從核心數據模型中獲取的「患者」實體列表。該表的各個部分取自一個名爲「位置」的患者屬性。下面是提取請求的排序描述:嚴重的應用程序錯誤
NSSortDescriptor *locationDescriptor = [[NSSortDescriptor alloc] initWithKey:@"location" ascending:YES];
NSSortDescriptor *lastNameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"lastName" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:locationDescriptor, lastNameDescriptor, nil];
下面是FRC的初始化代碼:
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"location" cacheName:@"List"];
當我想添加一個新的「病人」實體 - 我點擊添加按鈕然後將「添加新患者」視圖控制器推送到導航堆棧。
我加的第一個病人工作正常。
如果我添加了第二個病人 - 應用程序有時會出現以下錯誤崩潰:
2010-03-22 14:42:05.270 Patients[1126:207] Serious application error. Exception was caught during Core Data change processing: * -[NSCFArray insertObject:atIndex:]: index (1) beyond bounds (1) with userInfo (null) 2010-03-22 14:42:05.272 Patients[1126:207] * Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray insertObject:atIndex:]: index (1) beyond bounds (1)'
這似乎只如果患者的增加了一個位置發生(如果未添加該位置,然後默認爲'未知')。這似乎也與排序的位置有關。例如,如果第一個患者位置=病房14,第二病房= 9,那麼它肯定崩潰。
我想知道如果這是怎麼回事,我要求獲取的結果控制器排序節名?
這個錯誤是驅使我堅果,我只是無法弄清楚。任何幫助將不勝感激!
這解決了我的問題! – 2013-01-09 13:21:51
這仍然需要在iOS 8? – SAHM 2014-10-07 15:46:04