我知道最初一個NSNumber的正確的方法是NSNumber *a = @1;
爲什麼的NSNumber * a = 0時不顯示錯誤
,當我宣佈NSNumber *a = 1;
,我就得到了錯誤的int到
隱式轉換的NSNumber是不允許用圓弧
但我不知道爲什麼,當我宣佈NSNumber *a = 0;
沒有錯誤
就我而言,我有寫的NSNumber類 一些功能,然後
- 如果NSNumber的價值是
@0
,我可以使用的功能類別通常 - 如果NSNumber的價值是
0
,我可以使用功能類別,沒有錯誤發生,但運行應用程序時,該功能將永遠不會調用
的問題是,對象 - 是隻對C的層,因此它仍然包含所有從C的特徵例如在於'0'和'NULL'和falsy布爾都是一樣。以同樣的方式,你可以寫'if(20){'。 蘋果公司決定轉向現代編程語言(Swift)的許多原因之一,這一原因並未受到40年前語言設計決策的困擾。 – Sulthan