0

我对哪个是解决这个问题的最佳方法有些怀疑。

在我的应用程序中,我必须从大约 20 个不同的 url 中解析 xml。我想将逻辑放在 NSOperationQueue 中,这样我就可以将同步任务拆分为可以添加到队列中的较小任务。由于这个任务必须连接到一个 url 并且我正在使用 AFNetworking,我应该怎么做呢?

|
|
|------- => Start my OwnXMLOperation
|       |
|       |
|       | -------  => Start the AFNetworking operation inside my OwnXMLOperation
|       |        |
|       x        |
|                | => Download finish, starting the parser inside the success block
|                |
|------- => Anot | her OwnXMLOperation starts without the previous one is finished. 
|       |        |
|       |        |
|       |--------|--------
|       |        |        |
|       x        x => The | parser of the first operation finished.
|                         |
|                         |------- => Start the AFNetworking operation inside my OwnXMLOperation

我怎样才能避免这个丑陋的 NSOperation 地图?我正在考虑覆盖 AFNetworking 操作,我什至不知道这是否可能。

提前致谢

4

1 回答 1

2

不要同时使用您自己的 XML 操作,AFNetworking 操作和队列可以提供您需要的所有队列管理。

为了保持整洁,将您的 XML 解析放入多个方法中(如果您愿意,可以在控制器类或几个帮助器类中)。然后,您可以从 AFNetworking 成功块中酌情调用这些方法。

如果要添加 20 个操作,请务必在队列上设置最大并发计数,以免请求淹没网络。

于 2013-11-10T20:55:05.703 回答