2016-10-17 82 views
0

我試圖將我的Swift 2+代碼轉換爲Swift 3.我有一些typealias代碼引用,我無法根據Swift 3語法要求修復這些代碼引用。如何在Swift 3中使用typealias方法?

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) 
     ... 
    } 
} 

當我試圖調用方法self.updateHandler,XCode的報告編譯器錯誤:Cannot call value of non-function type 'UpdateProcessHandler!'

爲什麼我有這個或如何解決此問題的原因嗎?

回答

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

它確實承認它。函數簽名中的下劃線表示沒有「value」標籤。 – Connor

相關問題