NSOperation内部的AFNetworking操作

时间:2013-11-10 19:32:45

标签: ios xml afnetworking nsoperation nsoperationqueue

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

在我的应用程序中,我必须从~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操作,我甚至不知道它是否可能。

提前致谢

1 个答案:

答案 0 :(得分:2)

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

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

如果您要添加20个操作,请务必设置队列的最大并发计数,这样就不会使网络充满请求。