gpt4 book ai didi

ios - 在 HTTP 响应中保存核心数据对象

转载 作者:行者123 更新时间:2023-11-29 01:50:36 25 4
gpt4 key购买 nike

考虑以下代码,这是一个获取特定用户名的用户数据的简单请求。

- (void)updateInformation
{
AFHTTPRequestOperationManager *httpManager = [AFHTTPRequestOperationManager sharedManager];
NSDictionary *params = @{@"username": self.username};
AFHTTPRequestOperation *operation = <create_op>

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id response){
// use response to populate user
// self.fullname = response[@"fullname"];
}failure:nil];

[httpManager.operationQueue addOperation:operation];
}

此代码是特定实体类别的一部分,例如User

现在这个方法通常在scheduleBlock中被调用。 scheduleBlock ( http://cocoadocs.org/docsets/XMPPFramework/3.6.1/Classes/XMPPCoreDataStorage.html#//api/name/scheduleBlock :):

This method asynchronously invokes the given block (dispatch_async) on the storageQueue.

现在我的问题很简单——与 storageQueue 相比,请求响应是在不同的线程中接收的。 updateInformation方法实际上被调用 => 需要创建一个不同的托管对象上下文来存储对象,然后将这些更改与存储队列的上下文同步。 这样对吗?

另一个问题是 - 是否有更好的方法来处理这个问题,即不创建新上下文并尝试将其与存储队列上下文同步?

最佳答案

您可以使用相同的上下文,但由于您来自另一个线程/队列,因此您需要将核心数据处理代码包装在 performBlock:performBlockAndWait: 以便在与上下文关联的正确线程上完成处理。

关于ios - 在 HTTP 响应中保存核心数据对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31468880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com