为什么在swift中我们不能从NSObject采用一个没有继承的协议?
发布时间:2020-12-14 05:19:18 所属栏目:百科 来源:网络整理
导读:如果我使用以下代码,它会显示错误 “键入’HttpConnection’不符合协议’NSObjectProtocol’” class HttpConnection : NSURLConnectionDataDelegate { var urlConnection : NSURLConnection? weak var delegate : HttpConnecting? init(delegate:HttpConnec
如果我使用以下代码,它会显示错误
“键入’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协议在swift为什么我需要从NSObject继承类?
NSURLConnectionDataDelegate本身从继承自NSObjectProtocol的NSURLConnectionDelegate继承.
这意味着除了实现NSURLConnectionDataDelegate和NSURLConnectionDelegate之外的所有方法之外,还必须实现来自NSObjectProtocol的所有方法(例如,相等,散列). 你没有实现它们,这是你的错误.如果您从NSObject继承,那么所有NSObjectProtocol方法都已经为您实现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |