给出以下代码:
int firstInt,secondInt; firstInt = 5; secondInt = 5; NSNumber *firstNumber = [NSNumber numberWithInt:firstInt]; NSNumber *secondNumber = [NSNumber numberWithInt:secondInt];
为什么在地球上这两个NSNumber实例指向同一个地址?
这让我抓狂!
当然,如果你将secondInt更改为’4′,则所有工作都按预期工作.
谢谢,
杰里米
解决方法
这可能是编译器优化或实现细节:因为NSNumber是不可变的,所以不需要它们是单独的实例.
编辑:可能是一个实现优化思考它.随后使用相同的整数调用numberWithInt返回单例.