我对解决这个问题的最佳方法有疑问。
在我的应用程序中,我必须从~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操作,我甚至不知道它是否可能。
提前致谢
答案 0 :(得分:2)
不要同时使用自己的XML操作,AFNetworking操作和队列都可以提供您需要的所有队列管理。
为了保持整洁,请将XML解析放入许多方法中(如果您愿意,可以在控制器类或/几个辅助类中)。然后,您可以从AFNetworking成功块中适当地调用这些方法。
如果您要添加20个操作,请务必设置队列的最大并发计数,这样就不会使网络充满请求。