В MessagesViewController,
мы используем переопределенные методы делегата. При отправке сообщения didStartSending
вызывается как ожидалось. , Не необязательный параметр message
равен нулю, хотя:Может ли необязательный тип быть 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
.
Как может не факультативный, который по определению не может быть по определению в моем понимании, фактически равен нулю.
Так что это ошибка Apple, как я понимаю ваш ответ, правильно? – shallowThought