1

我知道 NSNumber 是不可变的,但我仍然需要在我的应用程序中更改它。我使用它是因为它是一个对象,因此可以与 @property 一起使用(如果可以的话,我会在心跳中使用 float 或 CGFloat,但遗憾的是,我不能)。

有什么方法可以覆盖旧的 NSNumber 实例?我正在尝试这个:

NSNumber *zero = [[NSNumber alloc] initWithFloat:0.0];
myNSNumber = zero

但这不会改变价值。这是我的代码的简化版本,因为我正在更改根视图控制器的参数(我知道,不是 MVC 友好的)。不过,值的变化应该是相同的分配,对吧?我应该先释放 myNSNumber 吗?我应该为 myNSNumber 设置什么@property?

谢谢!

4

2 回答 2

1

您可以使用方便的方法(例如numberWithDouble:或)获取自动释放的 NSNumber 实例numberWithInteger:。无需调用 alloc/init,尤其是当您使用说明retain符分配属性时(这些会在分配时自动保留/释放)。

于 2010-03-23T22:05:03.947 回答
0

((myViewController*)self.parentViewController).otherViewController.value

心理调试告诉我,这个属性链中的一个对象是 nil。我的钱花在了 parentViewController 上,因为我经常忘记设置父属性。

于 2010-03-25T04:08:54.357 回答