1. ホーム
  2. ios

[解決済み] Swiftです。nilのオプショナルをテストする

2022-04-27 15:34:20

質問

Xcode 6 Beta 4を使用しています。オプショナルを適切にテストする方法がわからないという奇妙な状況になっています。

オプションのxyzがある場合、正しいテスト方法ですか?

if (xyz) // Do something

または

if (xyz != nil) // Do something

ドキュメントには1番目の方法で行うように書かれていますが、2番目の方法が必要で、コンパイラーエラーが発生しない場合もあれば、2番目の方法でコンパイラーエラーが発生する場合もあることがわかりました。

私の具体的な例では、GData XML パーサーを swift にブリッジして使用しています。

let xml = GDataXMLDocument(
    XMLString: responseBody,
    options: 0,
    error: &xmlError);

if (xmlError != nil)

ここで、もし私がちょうど

if xmlError

を実行すると、常に真を返します。しかし、そうすると

if (xmlError != nil)

であれば、(Objective-Cで動くように)動作します。

GData XMLとそのオプションの扱い方について、私が見逃している何かがあるのでしょうか?

解決方法は?

Xcode Beta 5では、させてくれなくなった。

var xyz : NSString?

if xyz {
  // Do something using `xyz`.
}

これはエラーを発生させます。

はプロトコル 'BooleanType.Protocol' に適合していません。

これらのフォームのいずれかを使用する必要があります。

if xyz != nil {
   // Do something using `xyz`.
}

if let xy = xyz {
   // Do something using `xy`.
}