如何管理多个异步NSURLConnection委托?

时间:2010-05-12 15:33:49

标签: iphone objective-c cocoa cocoa-touch nsurlconnection

我有一个类,它创建多个异步连接,其中每个连接在委托方法中执行自己的逻辑。

因为委托本身就是类,所以如何在NSURLConnection委托方法中的逻辑中实现这种分离?

4 个答案:

答案 0 :(得分:6)

我的投票是为您正在进行的每项操作创建一个不同的类。这可能听起来更多的工作,但你的代码将更加清洁,这可能会导致更少的错误。

2014年3月编辑 - 不要使用委托方法,使用块。

答案 1 :(得分:2)

听起来像是你需要更好地用面向对象来表示你的对象。

您应该有一个类来管理多个类,每个类都管理自己的URL连接。

答案 2 :(得分:1)

检查传入的NSURLConnection对照保存的值,看看哪个连接负责;或使代表不同的对象;或使回调以通用方式运行。

答案 3 :(得分:0)

我遇到了这样的问题。我有一个类做同样的事情。我通过将每个NSURLConnection对象存储在一个可变字典实例var中并以hash为键来解决这个问题。然后我在类中添加了cancelAllConnections方法,并在每个视图控制器的viewDidUnload方法中调用它。该方法删除可变字典中的所有连接对象。然后我在NSURLConnection的connectionDidFinishLoading中添加了一个检查,以检查可变字典中的哈希键。如果哈希值不存在,则表示连接已取消,并且不会对垃圾对象执行回调选择器。