我知道最初一个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