如果我使用以下代码,则会向我显示错误“类型’HttpConnection’不符合协议’NSObjectProtocol’”
class HttpConnection : NSURLConnectionDataDelegate { var urlConnection : NSURLConnection? weak var delegate : HttpConnecting? init(delegate:HttpConnecting){ self.delegate = delegate; } func startAsynRequestWithUrlString(url:NSString, withMethod:NSString){ } }
如果我将HttpConnection子类化为NSObject,则可以正常工作。所以我的问题是,当我需要迅速采用NSURLConnectionDataDelegate协议时,为什么需要从NSObject继承该类?
NSURLConnectionDataDelegate本身NSURLConnectionDelegate继承自NSObjectProtocol。
NSURLConnectionDataDelegate
NSURLConnectionDelegate
NSObjectProtocol
这意味着除了实现NSURLConnectionDataDelegate,和中的所有方法外NSURLConnectionDelegate,您还必须实现,和中的所有方法NSObjectProtocol(例如,相等,哈希)。
您没有实现它们,这是您的错误。如果您从继承NSObject,则所有这些NSObjectProtocol方法都已经为您实现。
NSObject