NSInteger是否自动分配为0

时间:2014-01-04 23:48:28

标签: objective-c nsinteger

我对Objective-C编程很新,所以请原谅这个大问题。如果我按如下方式创建NSInteger:

@property (nonatomic) NSInteger myNumber;

它被分配给一个随机整数a la'C'还是被自动分配给'0'?

另外,分配它的最合理位置在哪里,注意这将在视图控制器中,可能会或可能不会从另一个视图控制器接收此值。

此时我是偏执狂并使用NSNumber,所以至少我可以测试nil,但我希望看看我能不能做得更好。

2 个答案:

答案 0 :(得分:0)

Per Creger的评论,

我查看了Are ints always initialized to 0?

的结果

NSInteger确实被初始化为零,就像所有类实例变量一样。

这是关于苹果文档的评论:

alloc方法还有另外一项重要任务,即通过将对象属性设置为零来清除为对象属性分配的内存。这避免了以前存储的包含垃圾的内存的常见问题,但不足以完全初始化对象。

有关如何不适用于malloc的更详细回复,请参阅该帖子的已接受答案 https://stackoverflow.com/a/990826/2668545

答案 1 :(得分:-2)

它默认为0.我认为你把它设置为错误。