Objective-CからSwiftへの変換メモ その4

Xcodeに任せてできたコードが落ちたのでメモして置く。

Objective-Cだと

if ([socket.inputStream streamStatus] == 2) {

    // Do something
}

上記コードをobjc2swiftで変換し、さらにXcodeの修正要求を反映したものが以下。

if Int((socket.inputStream?.streamStatus)!.rawValue) == 2 {

    // Do something
}

動作させ見たら、lldbが起動してアプリが落ちた。
エラーコードは「Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)」
と言われても良く分からないので、色々ネットを漁って分かった動作するコードが以下。

if (socket.inputStream?.streamStatus == .open) {
            
    // Do something
}

まぁ、Appleのドキュメントにも載っていると言えば確かになのだが、自分、あれを見ても意味が分からない情けない日曜プログラマーなのだった。

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL