web-dev-qa-db-fra.com

Utilisation de where in if let dans Swift

La documentation de Swift à la page 61 du Swift manuel) indique la possibilité d'utiliser where pour joindre une liaison facultative avec une condition régulière. Pourtant, lorsque je le fais, un avertissement me suggère de remplacer le where par une virgule, comme dans le code suivant:

if let geocodingError = error as? NSError where geocodingError.code == 2
56

Exemple à deux conditions

if let x = y, let a = b, a == x && !x.isEmpty {
4
Alex

Dans Swift 3 cette syntaxe a changé.

Quel était

if let x = y, a = b where a == x {

Est maintenant

if let x = y, let a = b, a == x {

La justification est que chaque sous-clause de la if ... { est maintenant un test booléen indépendant.

Voir le Xcode Notes de version & le proposition de Swift Evolution pour plus d'informations sur ce changement.

136
Grimxn

Dans xcode 9

if let str = textField.text as String!, !str.isEmpty
{
   params[key] = str
   TextFieldHelper.setup(textField: textField)
}
else
{ 
   TextFieldHelper.error(textField: textField)
}
3
luhuiya