核心数据:NSManagedObject添加值“forKey” - NSNumber截断。另类?

时间:2010-08-31 19:39:43

标签: iphone nsmanagedobject

据我所知,NSNumber不能超过1/10。我可以使用什么作为向Core Data添加双精度(经度/纬度)的替代方法?直接使用double不起作用,NSNumber会截断该值。

NSManagedObject *newManagedObject = [NSEntityDescription 
                                     insertNewObjectForEntityForName:[entity name]
                                     inManagedObjectContext:managedObjectContext];

if ([locObj valueForKey:@"latitude"]        != NULL) {
    NSNumber    *latitude       = [NSNumber numberWithInt:[[locObj valueForKey:@"latitude"] doubleValue]];
    [newManagedObject setValue:latitude forKey:@"latitude"];
}
if ([locObj valueForKey:@"longitude"]       != NULL) {
    NSNumber    *longitude      = [NSNumber numberWithInt:[[locObj valueForKey:@"longitude"] doubleValue]];
    [newManagedObject setValue:longitude  forKey:@"longitude"];
}

2 个答案:

答案 0 :(得分:1)

为什么不使用[NSNumber numberWithDouble:x]

答案 1 :(得分:0)

你可以看一下NSDecimalNumber吗?否则我相信你可能不得不处理四舍五入。