【问题标题】:Can someone post a full example usage of NSNumber?有人可以发布 NSNumber 的完整示例用法吗?
【发布时间】:2009-09-03 23:24:52
【问题描述】:

我什至不确定,例如,我是否可以像普通变量一样使用它。似乎没有可变版本。可变的是否意味着它的价值可以改变?

【问题讨论】:

  • mutable 表示它的值可以改变; immutable 表示它不能改变值。

标签: iphone xcode iphone-sdk-3.0 nsnumber


【解决方案1】:

“完整示例用法”是什么意思?你能给出你正在寻找的例子的背景吗?

你所说的“正常”变量是什么意思?

您可以通过使用返回自动释放对象的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。整洁的。行。这是有道理的。你回答得差不多了。完成后必须使用release方法吗?
  • 只有在使用过alloc或保留对象时才使用release。在我上面的示例中,如果您需要保留 myAutoreleasedNumber 一段时间,您可以使用 retain。
【解决方案2】:

您始终可以为不可变变量分配不同的对象引用,这样就可以了:

 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 
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 2014-05-25
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多