如何访问 NSURLConnection 委托属性



为什么不能执行以下操作:

id connectionDelegate = myConnection.delegate;
//myConnection is an instance of NSURLConnection

为什么这是不可能的,否则我如何访问委托。对我来说似乎很尴尬,还是我在这里错过了什么?

NSURLConnection非常尴尬。 你为什么还在使用它? 除非您尝试保持与iOS 6或OS X v10.8及更早版本的向后兼容性,否则只需使用NSURLSession。

话虽如此,如果您必须继续使用该 API 以实现向后兼容性,您可以随时执行我在以下情况下所做的操作:

  • 创建名为 delegate 和 setDelegate 的类别方法。
  • 使用 Objective-C 关联对象来存储和检索连接对象的值。
  • 如果无法控制创建 NSURLConnection 对象的代码,请切换 NSURLConnection 类的 init 方法来调用 setter。 否则,只需在创建 NSURLConnection 对象后立即手动调用资源库。

最新更新