未将属性声明为可选结果,并且未在super.init()"中初始化"属性。错误

时间:2014-06-06 18:05:54

标签: properties compiler-errors swift optional-variables

我为协议编写了​​以下代码。我将引用传递给委托变量并使用它来调用接口/协议函数。但是,如果我将?用于声明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();

1 个答案:

答案 0 :(得分:0)

因为在init结束时,每个属性都必须已初始化。在声明网站或init的代码中。

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