【发布时间】:2015-10-15 13:25:08
【问题描述】:
在我的标题中,我将一些变量声明为@property (nonatomic) NSInteger *soldWindows;,并使用它们来跟踪计数,并以_soldWindows++; 递增。结果始终是应有的 8 倍。我发现我的问题是将其声明为指针,因此我将其更改为 @property (nonatomic) NSInteger soldWindows; 解决了我的问题。
我的问题是,如果它只是存储一个内存地址,为什么整数值缩放 8 而不是任意地址?
【问题讨论】:
-
除了 ChrisCM 的正确答案之外,似乎没有什么特别的原因可以让您使用 NSInteger。所以只需使用 int intead。
-
@fishinear 根据目标,
NSInteger是int或long的 typedef。那么切换到int有什么好处呢? -
@fishinear 不好的建议。
-
小伙伴们别紧张,这是风格问题,不是很重要的风格,所以强烈的反应有点过头了。提到的变量“soldWindows” - 即“已售窗口的数量” - 似乎与引入 NSInteger 的 Apple API 没有任何关系。因此,使用该类型而不是普通的 C 类型可能会造成混淆。
标签: objective-c pointers nsinteger