更改数组内的值

0xD*_*15B 1 boolean objective-c nsmutablearray

例如:我有一个可变数组的BOOL(或[NSNumber numberWithBool:TRUE];).然后我想改变,例如这个数组中的第一个值为FALSE.

[array addObject:[NSNumber numberWithBool:TRUE]];
[array objectAtIndex:0] ??? 
Run Code Online (Sandbox Code Playgroud)

我知道一种非常奇怪的方式来完成这项任务.

[array replaceObjectAtIndex:0 withObject:[NSNumber numberWithBool:FALSE]];
Run Code Online (Sandbox Code Playgroud)

是的,这完全满足了我,但我正在寻找另一种方式,这比这更简单.喜欢的东西[[array objectAtIndex:0] setBoolValue:FALSE];,例如,想象一下,如果我有UIButton的,而不是布尔值将:[[array objectAtIndex:0] setHidden:TRUE];或者这仅仅是梦想?

提前致谢!

Che*_*tan 10

最好的方法是

[array replaceObjectAtIndex:0 withObject:[NSNumber numberWithBool:FALSE]];
Run Code Online (Sandbox Code Playgroud)

原因是[array objectAtIndex:0]返回一个NSNumber,不像你有一个UIButtons 数组,它会返回一个UIButton你可以操作的对象.因为你得到一个NSNumber回报,你不能做任何事情NSNumber直接做,因为它没有你想要的方法,所以你必须操作持有的方法NSNumber.