在我的 iOS 应用程序中,当应用程序加载以检查我的核心数据数据库中各种表(实体)的更新时,我正在访问一个 Web 服务。
我在后台线程中执行此操作,因此用户仍然可以与应用程序交互
我遇到的问题是,当我尝试加载包含我从 Core Data 访问的实体表的视图时 - 应用程序变得无响应并滞后,直到后台更新完成。
例如,如果我在后台更新这些“任务”时触摸以查看“任务”表,是否有可能获得无延迟的体验?
我正在使用 MagicalRecord 并在一个saveInBackgroundWithBlock
块中执行我的创建/更新
[MagicalRecord saveInBackgroundWithBlock:^(NSManagedObjectContext *localContext){
//UserTasks
if([viewName isEqualToString:[[NSString stringWithFormat:@"UserTask_vw_iSales"] lowercaseString]])
{
//returns a UserTask or nil if one does not exist
UserTask *oldUserTask = [UserTask doesExist:[record valueForKey:@"JSONData"]];
if(oldUserTask)
{
NSLog(@"deleting old UserTask");
[UserTask MR_deleteAllMatchingPredicate:[NSPredicate predicateWithFormat:@"userTaskUID == %@", oldUserTask.userTaskUID] inContext:localContext];
}
//create new one
UserTask *utt = [UserTask MR_createInContext:localContext];
[utt initWithJSONSting:[record valueForKey:@"JSONData"]];
NSLog(@"Creating UserTaskType: %@", utt.userTaskUID);
}
}];
谢谢你的帮助!