MessagesViewController,
では、オーバーライドされたデリゲートメソッドを使用しています。メッセージを送信するときは、didStartSending
が期待通りに呼び出されます。非オプションのパラメータmessage
しかしnilである:非オプション型をnilにできますか?
override func didStartSending(_ message: MSMessage, conversation: MSConversation) {
if message != nil {
logInfo("didStartSending message: \(message) conversation: \(conversation)")
} else {
logInfo("didStartSending message: \("why nil") conversation: \(conversation)")
}
}
ログ:
"didStartSending message: why nil conversation: <MSConversation: 0x17026ca00>"
経口によるデバッグ:
:(lldb) po message
<uninitialized>
また、我々はif
ライン上で予想される警告を取得
Comparing non-optional value of type MSMessage to nil always returns true
didCancelSending
についても同様です。
どのように非オプションでも、私の理解で定義することはできませんが、実際にはゼロにすることはできません。
これはアップルのバグです。あなたの答えをどうやって理解するのでしょうか? – shallowThought