it-swarm.com.de

Warnung zu Swift 3: Nicht optionaler Ausdruck des Typs 'String', der bei der Prüfung auf Optionals verwendet wird

Ich aktualisiere ein Projekt auf Swift 3 und bin auf die folgende Warnung gestoßen, die ich scheinbar nicht lösen kann.

fileprivate var filteredTitlesList: [String] = []

if let filteredTitle: String = filteredTitlesList[indexPath.row] as String { // 'Non-optional expression of type 'String' used in a check for optionals'

  // Do something

}

Die Antwort auf eine ähnliche Frage hat mir nicht geholfen: Nicht-optionaler Ausdruck des Typs 'AnyObject', der bei einer Prüfung auf Optionals verwendet wird

Danke vielmals!

9
nontomatic

Sie versuchen, einen bereits ausgepackten Wert zu entpacken. Daher wird eine Fehlermeldung angezeigt, da er nicht erneut entpackt werden muss. Ändern Sie Ihre if-Anweisung so, dass sie wie folgt aussieht und Sie sollten golden sein:

if filteredTitleList.count > indexPath.row {
    let filteredTitle = filterdTitleList[indexPath.row]
}

Leider gibt es keine Möglichkeit, die Variable innerhalb der if -Anweisung zu binden. Sie wird hoffentlich in Zukunft hinzugefügt.

11
Jacob King

Eine andere Möglichkeit dieser Warnung besteht, wenn Sie versuchen, eine Anweisung zu setzen, z. B .: let keyboardFrame: CGRect = keyboardFrameValue.cgRectValue in einer bedingten Anweisung wie if oder guard

0
Ali