2

私はこのように定義されたクロージャーを持っています、

public var onLogCompletion:((_ printLog:String,_ fileName:String,_ functionName:String,_ lineNumber:Int) -> ())? = nil

このように更新されるものは、

fileprivate func printerCompletion(printLog:String, fileName:String, functionName: String, lineNumber:Int) -> Void {
    if onLogCompletion != nil {
        onLogCompletion!(printLog, getFileName(name: fileName), functionName, lineNumber)
    }
}

そして、このように使用すると、

    Printer.log.onLogCompletion = { (log) in
        //print(log)
        //print(log.0)
    }

エラー:

タイプ '(_) -> ()' の値をタイプ '((String, String, String, Int) -> ())' に代入できませんか?

しかし、これにより上記のエラーが発生し、どうすればよいかわかりませんか?

同じことがSwift 3.xでも問題なく機能しています。

4

1 に答える 1