objective-c - 在 obj-c 中创建非 self 委托(delegate)

标签 objective-c cocoa macos

为了在 Objective C 中使用异步 http 请求,您需要将委托(delegate)设置为 NSURLConnection。问题是我需要发出多个 http 请求,因此拥有相同的委托(delegate)(自身)是行不通的。

解决这个问题的最佳方法是什么?我应该为每个 http 请求创建一个新的委托(delegate)类吗?这些委托(delegate)只是 NSObject 吗?

最佳答案

您有几个选择。最常见的两个是:

  • 为每个连接创建一个新类(是的,NSObject 的子类)并将它们设置为委托(delegate) - 让它们在加载数据时执行您需要的任何逻辑

  • 将一个类设置为委托(delegate)并存储对所有 NSURLConnection 的引用。这样,当您的委托(delegate)调用 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 时,您可以测试正在使用哪个 NSURLConnection (例如 if ([connection == myConnection]) - 或您正在实现的任何委托(delegate)方法)

关于objective-c - 在 obj-c 中创建非 self 委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5751192/

相关文章:

ruby - 安装 Ruby 后 MAC OS X 上的事件开发者路径无效

objective-c - cocoa 文本菜单和修改 NSOutlineView 中的字体

cocoa - 在 iOS5 中更改 MAC 地址

ios - Objective C 半只读属性

ios - 单击按钮时如何激活 UISearchDisplayController

macos - 防止点击 NSWindow/NSView 时激活应用程序

objective-c - 更具体的 NSNumberFormatter 失败行为

objective-c - 让我的 Cocoa 应用程序响应键盘播放/暂停键?

具有返回值的 iOS block

ios - @strongify(self.delegate)不工作