为什么在swift中我们不能从NSObject采用一个没有继承的协议?

前端之家收集整理的这篇文章主要介绍了为什么在swift中我们不能从NSObject采用一个没有继承的协议?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我使用以下代码,它会显示错误
“键入’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方法都已经为您实现.

猜你在找的Swift相关文章