我有一个 NSArray 的浮点数,我通过使用封装浮点数来完成
[NSNumber numberWithFloat:myFloat] ;
然后我将该数组传递到其他地方,我需要将这些浮点数拉出数组并执行基本的算术运算。当我尝试
[myArray objectAtIndex:i] ;
编译器抱怨我正在尝试对类型 ID 执行算术运算。它也不会让我投到浮动或加倍。
有任何想法吗?这似乎应该是一个简单的问题。也许它会在再喝一杯咖啡后来找我,但我们将不胜感激。谢谢。
我有一个 NSArray 的浮点数,我通过使用封装浮点数来完成
[NSNumber numberWithFloat:myFloat] ;
然后我将该数组传递到其他地方,我需要将这些浮点数拉出数组并执行基本的算术运算。当我尝试
[myArray objectAtIndex:i] ;
编译器抱怨我正在尝试对类型 ID 执行算术运算。它也不会让我投到浮动或加倍。
有任何想法吗?这似乎应该是一个简单的问题。也许它会在再喝一杯咖啡后来找我,但我们将不胜感激。谢谢。
您可以像这样拆箱浮动:
float f = [[myArray objectAtIndex:i] floatValue];
您正在将浮点值转换为NSNumber
对象并将其添加到NSArray
. 所以您必须再次将NSNumber
对象转换为浮点值。
NSNumber *number = [yourArray objectAtIndex:0];
float f = [number floatValue];
因此从 NSNumber 对象中拆箱浮点值:
NSNumber *number = myArray[i];
float f = [number floatValue];