Optional

Optional 正如其名,就是個可選擇或者說是可有可無的意思。

在 Swift 的開發過程之中,我們可以看到「 ! 」、「 ? 」存在於變數之後,像是  var userName: String? 正式意味著 userName 這個 String 有可能是 nil。

有關 Swift optional 的解釋和 nil 對於 Swift 的介紹可以看看這篇,由小草哥所攥寫的文章。

這邊要補充的是,在 Objective-C 裏頭,則是使用 nonnull 和 nullable 來代表著 Swift 裡頭的「 ! 」、「 ? 」。

而在 Objective-C 之中,可以使用 NS_ASSUME_NONNULL_BEGIN 及 NS_ASSUME_NONNULL_END 來作為區域性的宣告 @property 的屬性為 nonnull;若其中有需要宣告成 nullable 的,則再補上即可。