2016-10-17 4 views
0

Ich versuche, meine Swift 2+ Codes in Swift 3 zu konvertieren. Ich habe einige typealias Codereferenzen, die ich nicht nach Swift 3 Syntaxanforderung reparieren kann.Wie man Methoden in Swift 3 schreibt?

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

Wenn ich versuche, die Methode self.updateHandler, XCode Bericht Compiler-Fehler zu nennen: Cannot call value of non-function type 'UpdateProcessHandler!'

Gibt es Gründe, warum ich mit diesem oder wie dieses Problem beheben?

Antwort

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

Es macht es zu ehren. Der Unterstrich in der Funktionssignatur bedeutet, dass es für "Wert" keine Beschriftung gibt. – Connor

Verwandte Themen