2017-09-28 7 views
2

Ich bin UITests und vor kurzem aktualisiert, um Xcode 9.. Verbunden (Trennzeichen :) in Swift 4/XCode 9?

Diese Zeile Code wirft einen Fehler:

let deleteString = stringValue.characters.map { _ in XCUIKeyboardKeyDelete }.joined(separator: "") 

Der Fehler in dieser Zeile mit .joined (Separator ist :) und sagt:

Type of expression is ambiguous without more context 

Es ist innerhalb einer Funktion, die den Text aus einem UITextField während eines UITest löschen soll.

Dieser Code funktionierte, bevor ich auf Xcode 9 aufgerüstet habe. Irgendeine Möglichkeit, die Syntax für Swift 4/Xcode 9 zu konvertieren? Vielen Dank!

Antwort

6

XCUIKeyboardKey ist jetzt eine Enumeration. Versuchen Sie dies:

let deleteString = stringValue.characters.map { _ in XCUIKeyboardKey.delete.rawValue }.joined(separator: "") 
+0

Awesome Bruno danke! Klappt wunderbar! –

+1

Großartig! Ein Tipp: Jedes Mal, wenn Sie den Fehler "Typ ist zweideutig" erhalten, bedeutet dies, dass mehrere Fehler in einer einzigen Zeile stehen. Es hilft, die Zeile in mehrere Befehle aufzuteilen, um zu sehen, was vor sich geht. In Ihrem Beispiel, wenn Sie den Join-Teil entfernen und deleteString als 'String' erzwingen, können Sie sehen, dass' Enum nicht in String umgewandelt werden kann' –