如何访问 NSURLConnection 委托 属性

How to access NSURLConnection Delegate property

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

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 class 的初始化方法以调用您的 setter。否则,只需在创建 NSURLConnection 对象后立即手动调用 setter。