1

在我的 rss feeder 之类的应用程序中,我有一个包含 NewsItems 的数组,每个项目负责从 Web 异步请求其图像(通过使用 ASCHTTPRequest 库和 NSOperationQueue 方法)

我想在我的 rss feeder 中添加一个刷新功能。我的尝试是再次重新创建一个新数组(并释放所有旧的 NewsItems)并重复请求过程。

但是,如果我在所有 NewsItems 获取它们的图像之前刷新内容,则会导致 EXC_BAD_ACCESS 错误的崩溃。(由于旧项目是 dealloc 并且通过委托对这些项目进行回调..)

我应该如何以更好的方式解决这个问题?这是否意味着我不能简单地释放所有旧项目而不检查它们是否已经完成了它的请求?

抱歉,如果我不能清楚地描述我的问题。期待您的帮助 谢谢!

4

1 回答 1

1

您必须跟踪所有当前的 HTTP 请求。当您希望刷新时,取消所有请求,然后重新创建新阵列。这样,您的异步请求就不会尝试更新已释放的图像。

于 2012-04-19T13:44:17.753 回答