相关疑难解决方法(0)

NSFetchedResultsController:在后台线程中获取

我有或多或少的基本UITableViewController使用NSFetchedResultsController.在UITableViewController被压入navigationController's堆栈.但推送动画并不流畅,因为提取NSFetchedResultsController是在主线程上执行的,因此会阻止UI.

我的问题是:如何NSFetchedResultsController在后台线程中执行获取以保持动画流畅?

NSFetchedResultsController与委托方法是这样的:

- (NSFetchedResultsController *)fetchedResultsController
{
    if (_fetchedResultsController != nil) {
        return _fetchedResultsController;
    }

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

    // Set the batch size to a suitable number.
    [fetchRequest setFetchBatchSize:20];

    //Set predicate
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"parent == %@", self.subject];
    [fetchRequest setPredicate:predicate];


    // Edit the sort key as appropriate. …
Run Code Online (Sandbox Code Playgroud)

multithreading core-data uiviewcontroller nsfetchedresultscontroller ios

8
推荐指数
2
解决办法
8496
查看次数