【发布时间】:2009-09-03 23:24:52
【问题描述】:
我什至不确定,例如,我是否可以像普通变量一样使用它。似乎没有可变版本。可变的是否意味着它的价值可以改变?
【问题讨论】:
-
mutable表示它的值可以改变;immutable表示它不能改变值。
标签: iphone xcode iphone-sdk-3.0 nsnumber
我什至不确定,例如,我是否可以像普通变量一样使用它。似乎没有可变版本。可变的是否意味着它的价值可以改变?
【问题讨论】:
mutable 表示它的值可以改变; immutable 表示它不能改变值。
标签: iphone xcode iphone-sdk-3.0 nsnumber
“完整示例用法”是什么意思?你能给出你正在寻找的例子的背景吗?
你所说的“正常”变量是什么意思?
您可以通过使用返回自动释放对象的numberWithXXX 函数或通过执行标准alloc/init 来获得NSNumber:
NSNumber* myAllocedNumber = [[NSNumber alloc] initWithFloat:0.0f];
// ...use it...
[myAllocedNumber release];
NSNumber* myAutoreleasedNumber = [NSNumber numberWithFloat:0.0f];
您可以稍后更改指针指向的位置,但不能更改值:
NSNumber* myAutoreleasedNumber = nil;
myAutoreleasedNumber = [NSNumber numberWithFloat:0.0f];
// ...use it...
myAutoreleasedNumber = [NSNumber numberWithInt:1000];
【讨论】:
您始终可以为不可变变量分配不同的对象引用,这样就可以了:
NSNumber *intKey;
NSMutableArray *backToString =[[NSMutableArray alloc] init];
while ((intKey = [enumerator nextObject])) {
//(NSNumber *)integer = [key integerValue];
[backToString addObject:[intKey stringValue]];
// code that uses the returned key
}
【讨论】: