1

我为协议编写了​​以下代码。我将引用传递给委托变量并使用它来调用接口/协议函数。但是,如果我?声明 Protocol 对象,则不会产生错误。如果我不这样做,它会给我一个错误

属性 self.delegate 未在 super.init() 处初始化。

这是为什么?

protocol DownloadDataInterface
{
    func downloadCompleted(data : NSDictionary);
}

class DownloadData: NSObject, NSURLConnectionDelegate, NSURLConnectionDataDelegate {

    var data : NSMutableData!;

    var delegate : DownloadDataInterface;


    init(keywords: String!)
    {
        super.init();
4

1 回答 1

0

因为到最后init每个属性都必须被初始化。无论是在申报地点还是在init.

可选的或隐式展开的可选属性是唯一的例外(因为毕竟,这就是可选的含义)。

于 2014-06-06T18:13:44.840 回答