web-dev-qa-db-ja.com

Swiftでの割り当てを許可する場合のwhereの使用

Swiftマニュアルの61ページにあるSwiftドキュメントは、whereを使用してオプションのバインディングを通常の条件に結合する可能性を示唆しています。しかし、それを行うと、次のコードのように、whereをコンマで置き換えるように警告する警告が表示されます。

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

2つの条件の例

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

Swift 3では、この構文が変更されました。

何だった

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

今でしょ

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

正当な理由は、if ... {の各サブ節が独立したブールテストになったことです。

この変更の詳細については、Xcode リリースノート および Swift Evolutionの提案 を参照してください。

136
Grimxn

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