【问题标题】:Static Var Missing argument for parameter "coder"参数“coder”的静态 Var 缺少参数
【发布时间】:2016-01-18 00:00:39
【问题描述】:

我有一个带有 webview 的类,我想添加一个静态 var,我已经对其他类进行了此操作,它正在工作,但现在我不知道为什么,但我有一个关于“编码器”参数的错误:

 class Actu: UIViewController, WKNavigationDelegate  {

class var myInstance : Actu{
    struct Static {
        static let myInstanceActu : Actu = Actu() //Missing argument for parameter 'coder' in call
    }
    return Static.myInstanceActu
}
       required init(coder aDecoder: NSCoder){
    let config = WKWebViewConfiguration()
    let scriptURL = NSBundle.mainBundle().pathForResource("hideSectionsActu", ofType: "js")
    let scriptContent = String(contentsOfFile:scriptURL!, encoding:NSUTF8StringEncoding, error: nil)
    let script = WKUserScript(source: scriptContent!, injectionTime: .AtDocumentStart, forMainFrameOnly: true)
    config.userContentController.addUserScript(script)
    self.webView = WKWebView(frame: CGRectZero, configuration: config)
    super.init(coder: aDecoder)
    self.webView.navigationDelegate = self

}

}

如果有人有想法,谢谢

【问题讨论】:

    标签: swift static var


    【解决方案1】:

    问题是您没有任何不带参数的初始化程序。尝试添加下面的初始化程序,它应该可以工作。

    init () {
       // Your initialization
    }
    

    编辑:发布 OP cmets - 根据 Apple 文档:

    “一个指定的初始化器必须确保所有的”属性 由它的类引入的在它委托给一个之前被初始化 超类初始化器。”

    【讨论】:

    • 我做到了,错误消失了,我重写了 init 并添加了一个 super.init()。现在它告诉我“属性 'self.webview' 未在 super.init 调用中初始化”
    • 没关系,这很容易。再次感谢您的回答,这真的很有帮助
    • 很高兴为您提供帮助!干杯:)!
    猜你喜欢
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2012-05-08
    相关资源
    最近更新 更多