我有一個NSFetchedResultsController與tableView鏈接,所以我使用NSFetchedResultsController委託來更新更改。NSFetchedResultsController委託奇怪的行爲
在(controllerWillChangeContent :)我儘量對象的索引存儲在NSFetchedResultsController這樣的:
- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller
{
NSLog(@"controllerWillChangeContent1");
_indexesArray = [[NSMutableArray alloc] init];
for (myObject* my_obj in [controller fetchedObjects]) {
NSLog(@"name : %@ row : %d section : %d", my_obj.name, [controller indexPathForObject:my_obj].row, [controller indexPathForObject:my_obj].section);
NSIndexPath* idxPath = [controller indexPathForObject:my_obj];
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setObject:my_obj.name forKey:@"name"];
[dict setObject:idxPath forKey:@"index"];//it crashes on the deleted element
[_indexesArray addObject:dict];
}
NSLog(@"controllerWillChangeContent2");
}
我知道,我有一個已刪除項目。我可以遍歷對象(myObject)並讀取名稱,但是它爲刪除的對象提供了一個無索引路徑。
應該NSFetchedResultsController保持在(controllerWillChangeContent :)對象的指標
感謝的
有蘋果爲例,介紹如何使用'NSFetchedResultsController'用'UITableView'在'NSFetchedResultsControllerDelegate'參考 –
謝謝您回覆,但我存儲的NSFetchedResultsController對象的更新之前,爲另一個目的更新 和controllerWillChangeContent不應更新NSFetchedResultsController已作爲蘋果文檔 – zizoodiesel