在我的iOS应用程序中,当应用程序加载以检查我的Core Data DB中各种表(实体)的更新时,我正在点击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);
}
}];
感谢您的帮助!
答案 0 :(得分:0)
我最终没有使用MagicalRecord来获取我正在寻找的行为 - 我关注了这篇文章:
https://stackoverflow.com/a/11814957/480415
现在我的UI在后台更新实体时没有被锁定。