2015-07-23 5 views
5

Ich konvertiere ein Projekt in Swift 2.0 und stolpere immer wieder über diesen Fehler, wenn ich eine Lazy Var verwende. Dieser Code funktioniert perfekt in 1.2, aber Pausen in 2.0:Swift 2.0 'unerwarteter Trailing-Closure'-Fehler mit Lazy-Var-Zuweisung

lazy private var placeholderImage = UIImage(named: "theImage") 

Aber dieser Code erzeugt eine 'unerwartete Hinter Schließung' Fehler in 2.0.

die Vorschläge der Xcode Nach den Fehler zu beheben, ist es das, was ich kommen mit:

lazy private var placeholderImage: UIImage = UIImage(named: "theImage")! 

Dies kompiliert und scheint zu funktionieren, aber ich verstehe nicht, warum die Änderung in erster Linie notwendig war, .

Antwort

8

In Apple developer forum einem Apple Mitarbeiter (ChrisLattner) sagte:

Yep, das ist ein bekannter Fehler ist (und oft berichtet), wo Typinferenz nicht richtig mit faulen Eigenschaften arbeiten. Das Hinzufügen des expliziten Typs Annotation ist der beste Weg, um dies vorläufig zu umgehen.

das Thema wird auch in this Google group

+0

Danke für die Links diskutiert! –