我是一名初学者,在Objective C中进行iPhone开发,我发现自己经常需要将浮点数(和整数)从各种NSArray中取出或放入其中。
float myFloatValue = [(NSNumber *)[myArray objectAtIndex:integerSelector] floatValue];
我知道需要进行boxing是因为浮点数或整数不是指针,而NSArray仅接受指针。
我想知道是否有一些语法糖可以缩短这行代码-大多数情况下,当我有几个数组并循环它们以进行一些处理时,我发现代码行开始变得巨大,我必须分开提取数组中的数字才能使代码可读性好-然后我就有很多废话的行,往往会使逻辑更难以理解。
在像C#这样的语言中,我会写出类似以下的代码:
float myResult = myArray[i] + someOtherArray[i+1];
嗯——这可能是一行很愚蠢的代码——但从语法上来说,它相当干净。我猜是因为.net在我看不见的地方隐式地进行装箱操作。
在Objective-C中,我发现自己写下了以下代码:
float myFloatValue = [(NSNumber *)[myArray objectAtIndex:i] floatValue];
float myOtherFloatValue = [(NSNumber *)[someOtherArray objectAtIndex:i+1] floatValue];
float myResult = myFloatValue + myOtherFloatValue;
我在想,手打代码是否有更好的方法呢?我应该使用NSArray的替代方案吗?是否有装箱/拆箱的快捷方式?
或者,我应该习惯这种方式,不再抱怨呢 ;)
id
对象来说,你可以发送任何你想要的消息。 - StilesCrisis