Objective C:从Array到float的NSNumber

时间:2013-06-25 17:56:12

标签: ios objective-c arrays nsnumber

我有一个数组:

SomeArray =[[NSMutableArray alloc]initWithObjects:[NSNumber numberWithFloat:50.0],[NSNumber numberWithFloat:120.0],[NSNumber numberWithFloat:200.0],nil];

当我找回它时:

NSNumber* Target = [SomeArray objectAtIndex:0];

当我记录它时:

NSLog(@"Target %d",Target);

它返回了像

这样的时髦
2013-06-26 01:47:58.940 KKK[1027:c07] Target 121016880

这样做的正确方法是什么?我只需要将数组中的number用作float

2 个答案:

答案 0 :(得分:4)

您正在检索NSNumber,这是一个对象。

%d用于记录小数,这不是你的情况。

您可以使用

进行记录
NSLog(@"Target %@", target);

或者您将其转换为浮动并使用%f

NSLog(@"Target %f", [target floatValue]);

并且不要对变量使用大写标识符!

答案 1 :(得分:1)

您要求日志中的小数%d和基本类型。 NSNumber是一个包装基本类型数字的对象。所以你可以这样做 NSLog(@"target %f",[Target floatValue])NSLog(@"target %@",Target)。第一个是向对象发送消息以使用后者解包浮点值,您要求对象描述,在这种情况下是数字