Dans un MessagesViewController,
, nous utilisons les méthodes déléguées substituées. Lors de l'envoi d'un message, didStartSending
est appelé comme prévu. Le paramètre non optionnel message
est nul si:Un type non facultatif peut-il être nul?
override func didStartSending(_ message: MSMessage, conversation: MSConversation) {
if message != nil {
logInfo("didStartSending message: \(message) conversation: \(conversation)")
} else {
logInfo("didStartSending message: \("why nil") conversation: \(conversation)")
}
}
Log:
"didStartSending message: why nil conversation: <MSConversation: 0x17026ca00>"
Debugging avec po:
(lldb) po message
<uninitialized>
Nous obtenons également l'avertissement prévu sur la ligne if
:
Comparing non-optional value of type MSMessage to nil always returns true
La même chose est vraie pour didCancelSending
.
Comment un élément non facultatif, qui ne peut pas être nul par définition à ma connaissance, est-il réellement nul?
Donc, c'est un bug d'Apple, comment je comprends votre réponse, non? – shallowThought