Swift completion-block

Ich bin eine harte Zeit zu verstehen, ein problem, das ich habe.
Zur Vereinfachung verwende ich UIView-Methode.
Im Grunde, wenn ich Schreibe, die Methode

UIView.animateWithDuration(1, animations:  {() in
        }, completion:{(Bool)  in
            println("test")
    })

funktioniert es einwandfrei.
Nun, wenn ich die gleiche Methode, aber die Schaffung eines string, etwa so:

    UIView.animateWithDuration(1, animations:  {() in
        }, completion:{(Bool)  in
            String(23)
    })

Es nicht mehr funktioniert. Compiler-Fehlermeldung: Fehlende argument für den parameter 'Verzögerung' in call

Nun, hier ist der seltsame Teil. Wenn ich den genau gleichen code wie der, der scheitert, aber fügen Sie einfach einen drucken-Befehl, etwa so:

   UIView.animateWithDuration(1, animations:  {() in
        }, completion:{(Bool)  in
            String(23)
            println("test")
    })

beginnt es wieder zu arbeiten.

Mein problem ist im Grunde dasselbe. Mein code:

   downloadImage(filePath, url: url) { () -> Void in
         self.delegate?.imageDownloader(self, posterPath: posterPath)
        }

Nicht funktioniert. Aber wenn ich auf die.

 downloadImage(filePath, url: url) { () -> Void in
             self.delegate?.imageDownloader(self, posterPath: posterPath)
                println("test")
            }

oder auch:

downloadImage(filePath, url: url) { () -> Void in
             self.delegate?.imageDownloader(self, posterPath: posterPath)
             self.delegate?.imageDownloader(self, posterPath: posterPath)
            }

Funktioniert es einwandfrei.
Ich kann nicht verstehen, warum dies geschieht. Ich bin in der Nähe akzeptieren, dass es zu einem compiler-Fehler.

InformationsquelleAutor Wak | 2014-09-21
Schreibe einen Kommentar