相关疑难解决方法(0)

当值等于时,为什么NSNumber指向相同的地址?

给出以下代码:

int firstInt, secondInt;

firstInt = 5;
secondInt = 5;

NSNumber *firstNumber = [NSNumber numberWithInt:firstInt];
NSNumber *secondNumber = [NSNumber numberWithInt:secondInt];
Run Code Online (Sandbox Code Playgroud)

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

这让我抓狂!

当然,如果你将secondInt更改为'4',则所有工作都按预期工作.

谢谢,Jérémy

pointers objective-c nsnumber ios

7
推荐指数
2
解决办法
1788
查看次数

根据==,从同一个float创建的两个NSNumber不相等

我有几个floats转换为NSNumbers并添加到数组,然后按数字顺序排序.

然后我把原始的floats转换成NSNumbers,但是如果我试着比较它们if(numinarray = newnum){就永远不会去.当我NSLog()输出值时,值匹配:

float distance  = [barnardCastle distanceFromLocation:loc1] / 1000;
float distance2 = [billingham distanceFromLocation:loc1] / 1000;
float distance3 = [bishopAukland distanceFromLocation:loc1] / 1000;
float distance4 = [cockerton distanceFromLocation:loc1] / 1000;
float distance5 = [darlington distanceFromLocation:loc1] / 1000;
float distance6 = [guisborough distanceFromLocation:loc1] / 1000;
float distance7 = [hartlepool distanceFromLocation:loc1] / 1000;
float distance8 = [middlesbrough distanceFromLocation:loc1] / 1000;
float distance9 = [northallerton distanceFromLocation:loc1] / 1000;
float …
Run Code Online (Sandbox Code Playgroud)

comparison cocoa-touch objective-c nsnumber

4
推荐指数
2
解决办法
4242
查看次数

标签 统计

nsnumber ×2

objective-c ×2

cocoa-touch ×1

comparison ×1

ios ×1

pointers ×1