iPhone - 异步 NSURLConnection HTTP 响应可能会干扰正在运行的进程吗?

发布于 2024-11-29 05:43:53 字数 421 浏览 0 评论 0原文

我有一个请求:

[NSURLConnection connectionWithRequest:urlRequest delegate:self];

已启动。

当我随时收到:

- (void)connectionDidFinishLoading:(NSURLConnection*)connection

我更改数组的内容(删除或添加项目)。

在程序的另一部分,我必须解析该数组才能处理其内容。

所以问题是:当我处理数组的内容时(“for xxx in array”循环),服务器的响应(可能随时出现)可能会导致 connectionDidFinishLoading 的代码code> 更改该数组,并使整个事情崩溃?

I have a request :

[NSURLConnection connectionWithRequest:urlRequest delegate:self];

that is launched.

When I receive at any time :

- (void)connectionDidFinishLoading:(NSURLConnection*)connection

I change the content of an array (remove or add items).

In another part of my program, I have to parse that array to work with its content.

So the question is : while I'm working with the content of the array ("for xxx in array" loop), may the response of the server (that can come at any time) cause the code of connectionDidFinishLoading change that array, and make the whole thing crash ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

-柠檬树下少年和吉他 2024-12-06 05:43:53

是的,这会导致您的应用程序崩溃。您可以使用 NSURLConnection 委托方法正在修改的数组的副本,或者等待该方法完成,然后再迭代数组中的项目。

当存在活动的 NSURLConnection 时,可能会阻止该特定操作,因此 UI 的其余部分仍然可用。

Yes and it will cause your app to crash. You can either work with a copy of the array that is being modified by the NSURLConnection delegate method OR wait for the method to finish before iterating through the items in your array.

Maybe block that particular operation while there is an active NSURLConnection so the rest of your UI is still usable.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文