将浮点值转换为id。我怎样才能做到这一点?

时间:2011-12-07 09:55:08

标签: objective-c xcode floating-point

  

可能重复:
  How can I store a float value in an NSArray?

它想要id值,但我的变量是float。我想导入tmpValue数组1.对象。我怎么能这样做?

tmpToplam =  tmpToplam + ([[self.closeData objectAtIndex:i]floatValue] - tmpToplam)* expCarpan;


            [tmpValue replaceObjectAtIndex:1 withObject:tmpToplam]; 

3 个答案:

答案 0 :(得分:8)

您可能希望将您的浮点数包装在NSNumber中,因为id只是指向“任何Objective-C对象”的指针,而NSNumber是用于包装数字的相应Object-C类:

float a = 2.0;
float b = 3.0;
NSNumber *aNumber = [NSNumber numberWithFloat:a];
NSNumber *bNumber = [NSNumber numberWithFloat:b];
NSArray *array = [NSArray arrayWithObjects:aNumber, bNumber, nil];

答案 1 :(得分:4)

id是一个指向目标c对象的指针,在cocoa的情况下通常是NSObject,所以你需要将你的float包装在NSNumber(继承自{{} 1}})。 NSObject可以处理许多其他原始类型。

答案 2 :(得分:0)

为什么不使用NSString StringWithFormat将tmpToplam转换为字符串?实际上在一个数组中,你需要放一个对象而float不被认为是对象。当然,String是一个对象。