小编Sar*_*ara的帖子

传递给objective-c中的方法时浮点值更改

好的,这就是我的情况:

我有一个核心数据生成类Quantity,它的一个属性'Value',标记为float.

Quantity类中有一个方便的方法,它可以帮助我设置这个属性:

- (void)setValueValue:(float)value_ {

    [self setValue:[NSNumber numberWithFloat:value_]];

}
Run Code Online (Sandbox Code Playgroud)

现在,当我设置尝试从这样的控制器设置此值,

Quantity *q = (Quantity *) [NSEntityDescription insertNewObjectForEntityForName:@"Quantity" inManagedObjectContext:self.managedObjectContext];

float qv = 100.0f;

[q setValueValue:qv];
Run Code Online (Sandbox Code Playgroud)

该值设置为1.40129846e-43

我在上面的两个位置都放置了断点,虽然工具提示在Controller类中正确显示值为100.0,但它在setter方法中显示的值不正确.

最终,存储在对象和db中的值是不正确的值.

关于这里发生了什么的任何线索?

iphone floating-point core-data objective-c

2
推荐指数
1
解决办法
1125
查看次数

标签 统计

core-data ×1

floating-point ×1

iphone ×1

objective-c ×1