gpt4 book ai didi

ios - 如何在 iOS 后台运行 NSURLConnection

转载 作者:行者123 更新时间:2023-11-29 02:20:07 25 4
gpt4 key购买 nike

我正在使用一个应用程序,它是待办事项列表管理器,用户可以在其中添加注释。我正在使用 coredata DB 来存储笔记。当我提供同步功能时,我将 JSON 数据解析到服务器,并从服务器获取 JSON 数据。
我正在使用 NSURLConnection API 及其委托(delegate)函数

- (void)pushData
{
loop through the notes array and send notes 1 by one

[[request setValue:@"application/json;charset=utf-8" forHTTPHeaderField:@"Content-Type"];

[request setHTTPMethod:@"POST"];
[request setHTTPBody:jsonData];

m_dataPush = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

[m_dataPush start];
}


- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
Process response from server, save to core DB
and again pushData if any modified and again process the response
}

我在 appEnterBackground 和 appBecomeActive 上调用此 API,因为我希望数据在多个设备上更新。

我面临的问题是

1)当笔记较多时,当我们退出并打开应用程序并开始添加笔记时,应用程序会卡住。

2)我尝试使用 GCD,但是我的 NSURLConnection 没有向我发送任何响应

问候兰 git

最佳答案

Ranjit:根据您在不同回复中的评论,我怀疑您是从主线程发送第一个请求。当您收到第一个响应时,您在后台处理它,然后也从后台发送第二个请求。后续的请求应该从主线程发送

[self performSelectorOnMainThread:@selector(myMethodToOpenConnection:)
withObject:myObject
waitUntilDone:NO];

否则线程在调用委托(delegate)之前退出

关于ios - 如何在 iOS 后台运行 NSURLConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28250568/

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