我知道我應該使用指定的初始化到init一個NSNumber。但是當我發現:
[[NSNumber alloc] init]回傳 nil 時,我還是有點驚訝。在NSNumberto return nilfor 的實作中做了什么init(畢竟NSObjectwill return self)?它是否首先在指定的初始值設定項中嘗試init底層__NSCFNumber?所以,如果你去通過默認init,它回傳nil作為墊層__NSCFNumber的nil。為什么不只是將initand宣告new為NS_UNAVAILABLE?
uj5u.com熱心網友回復:
我懷疑被覆寫的initforNSNumber只是回傳nil. 如果由于某種原因無法創建物件,則這是有效的。
呼叫此初始化程式是無效的,因為在不知道您想要什么樣的數字的情況下無法創建物件。
未標記為的原因NS_UNAVAILABLE是該宏僅在 2014 年引入。
NSNumber比這更古老。大了20歲。它可以追溯到1994 年的NeXTSTEP(這就是NS前綴在所有這些類中的含義)。添加該宏將是一個突破性的變化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/353536.html
上一篇:mysql-day01筆記
下一篇:需要在郵遞員中轉到下一頁資料
