【发布时间】:2013-10-20 03:20:17
【问题描述】:
在AFNetworking 从我的应用服务器获取信息后,将调用以下方法以填充我的Core-Data。
当表格更新时,我可以在UITableView 中看到正在更新的新信息。
现在我遇到的问题是即使我可以看到信息(在从服务器获取信息、存储到核心数据并重新获取以显示在我的UITableView 之后)如果我然后去关闭我的app再打开,信息就没有了。
似乎信息不是持久的,问题似乎出在线程上。鉴于如果我在我的方法中删除线程选项一切正常。
我错过了什么?我已经尝试了我遇到的大多数事情,但我似乎找不到解决方案。
NSManagedObjectContext *childContext = [[NSManagedObjectContext alloc]
initWithConcurrencyType:NSPrivateQueueConcurrencyType];
childContext.parentContext = managedObjectContext;
myModel.context = childContext;
[childContext performBlock:^{
// ... Lots Controller logic code that then calls the class myModel where all my Core-Data save methods are
// Sort Wall Pictures
if ( [dataHolder[@"verb"] isEqualToString:@"addWallPicture"] ) {
data = @{ @"resourceID":dataHolder[@"_id"][@"$id"],
@"resourceName":dataHolder[@"details"][@"resourceName"],
@"author":@{ @"id":dataHolder[@"userId"][@"$id"],
@"username":dataHolder[@"details"][@"authorName"] },
@"likesNumber":@0,
@"likesPeople":@[]
};
[myModel saveSocialWall:data date:date verb:dataHolder[@"verb"] code:dataHolder[@"_id"][@"$id"] myUser:myUser];
continue;
}
[childContext save:&error];
}];
【问题讨论】:
-
您是否也保存主要上下文?保存子上下文只保存到主上下文,保存主上下文保存到存储文件。
-
线程完成后如何保存主上下文?
标签: objective-c cocoa-touch cocoa core-data nsmanagedobject