iphone - NSFetchResultsController 委托(delegate)没有被调用

标签 iphone objective-c ios ipad nsfetchedresultscontroller

我有以下代码:

- (NSFetchedResultsController *)fetchedResultsController {
    // Set up the fetched results controller if needed.
    if (fetchedResultsController == nil) {

 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
        // Edit the entity name as appropriate.
        NSEntityDescription *entity = [NSEntityDescription entityForName:@"DiskStory" inManagedObjectContext:self.managedObjectContext];
        [fetchRequest setEntity:entity];

        fetchRequest.predicate = [NSPredicate predicateWithFormat:@"isRemoved == %@", [NSNumber numberWithBool:NO]];

        // Edit the sort key as appropriate.
        NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"created" ascending:NO];
        NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

        [fetchRequest setSortDescriptors:sortDescriptors];

        // Set limit
        [fetchRequest setFetchBatchSize:25];
        // Set batch size
        [fetchRequest setFetchLimit:50];


        NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:kSavedStoryCache];
        aFetchedResultsController.delegate = self;
        fetchedResultsController = aFetchedResultsController;
 }
    return fetchedResultsController;
}    

在我看来DidLoad 我有:
 NSError *error = nil;
    if (![[self fetchedResultsController] performFetch:&error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    }

我想知道为什么我的:
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {

}

代表,不是叫吗?我在里面放了一个断点。任何的想法?

最佳答案

我之前也遇到过这个问题,调用时没有调用performFetch第一次,但仅限于 fetchedResultsController 中的数据实际上是改变了。例如,当您从此获取结果中的上下文中删除对象时,将调用委托(delegate)。

关于iphone - NSFetchResultsController 委托(delegate)没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020523/

相关文章:

iphone - 如何创建自定义 iOS View

iphone - 委托(delegate)混淆 .. 我如何知道几个委托(delegate)何时完成了他们的任务?

ios - UIButton的切换功能

ios - 使用导航栏和 UITextField 时出现问题

ios - 在另一个 View 中内联嵌入共享图标

ios - 动画太快了。似乎不能放慢脚步

iphone - 远程通知 token 处理

ios - UITableView 编辑模式阻止单元格重新分配并减慢 dequeueReusableCellWithIdentifier

objective-c - 设置属性时执行附加代码的正确方法

cocoa-touch - iOS 上的文字转语音