它想要id值,但我的变量是float。我想导入tmpValue数组1.对象。我怎么能这样做?
tmpToplam = tmpToplam + ([[self.closeData objectAtIndex:i]floatValue] - tmpToplam)* expCarpan;
[tmpValue replaceObjectAtIndex:1 withObject:tmpToplam];
答案 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是一个对象。