gpt4 book ai didi

objective-c - 为什么 NSNumber 在值相等时指向同一个地址?

转载 作者:可可西里 更新时间:2023-11-01 03:25:35 25 4
gpt4 key购买 nike

给定以下代码:

int firstInt, secondInt;

firstInt = 5;
secondInt = 5;

NSNumber *firstNumber = [NSNumber numberWithInt:firstInt];
NSNumber *secondNumber = [NSNumber numberWithInt:secondInt];

为什么这两个 NSNumber 实例指向同一个地址?

这让我发疯!

当然,如果您将 secondInt 更改为“4”,一切都会按预期工作。

谢谢,杰里米

最佳答案

这可能是编译器优化或实现细节:因为 NSNumber 是不可变的,所以它们不需要是单独的实例。

编辑:可能是考虑它的实现优化。当随后使用相同的整数调用时,numberWithInt 可能会返回一个单例。

关于objective-c - 为什么 NSNumber 在值相等时指向同一个地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4270121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com