2016-10-17 4 views
0

Swift 2+のコードをSwift 3に変換しようとしています。私はSwift 3の構文要件に従って修正できないtypealiasコードの参照があります。Swift 3でメソッドを型変換する方法は?

typealias UpdateProcessHandler = (_ value:Double) -> Void 

class StartUploadingProcess: Operation 
{ 
    ... 
    fileprivate var updateHandler: UpdateProcessHandler! 

    init(filePath: String, updateHandler:@escaping UpdateProcessHandler) 
    { 
     self.updateHandler = updateHandler 
     ... 
    } 

    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) 
    { 
     ... 
     self.updateHandler(value: self.progress.fractionCompleted) 
     ... 
    } 
} 

私はXCodeのレポートコンパイラエラーが、メソッドを呼び出すself.updateHandlerしようとしている:私はこれを持つか、どのようにこの問題を解決するよなぜCannot call value of non-function type 'UpdateProcessHandler!'

いかなる理由が?

答えて

2
self.updateHandler(self.progress.fractionCompleted) 
+0

それを尊重します。関数シグネチャのアンダースコアは、 'value'のラベルがないことを意味します。 – Connor

関連する問題