Ich habe gerade angefangen Xcode9 (beta2) zu verwenden. Mein Verständnis war, dass es mich nicht zwingen würde, meinen Code sofort zu ändern. Aber ich bin immer ein Build-Fehler mit einer Bibliothek kommen ich verwende (Gloss):Ist Xcode9 abwärtskompatibel zu Swift 3 (oder 3.1)?
1) Für den folgenden Code:
public func valueForKeyPath(keyPath: String, withDelimiter delimiter: String = GlossKeyPathDelimiter, logger: Logger = GlossLogger()) -> Any? {
ich:
Initializer 'init()' interne und kann nicht von einem Standardargument Wert
2) Zu diesem Code verwiesen werden:
internal func flatMap<KeyPrime : Hashable, ValuePrime>(_ transform: (Key, Value) throws -> (KeyPrime, ValuePrime)?) rethrows -> [KeyPrime : ValuePrime] {
return Dictionary<KeyPrime,ValuePrime>(elements: try flatMap({ (key, value) in
return try transform(key, value)
}))
}
Ich erhalte:
Closure Tupel Parameter '(Schlüssel: _, Wert: _)' nicht unterstützt Destrukturierung
Beides verursacht kein Problem mit Xcode 8.3/Schnell 3.1.
ich Xcode9 verwende, ohne die Option 4. Swift aktualisieren gewählt zu haben scheint es mehrere Möglichkeiten:
- Es gibt einige Flags, die gesetzt werden müssen, um Swift 3.1 Rückwärtskompatibilität
- Xcode9 zu halten ist in der Betaphase und ist einfach nicht bereit voll
- Xcode9 nicht vollständig rückwärtskompatibel zu Swift 3,1
Gedanken sein?
Vergleichen https://stackoverflow.com/q/44389591/2976878 – Hamish