代码之家  ›  专栏  ›  技术社区  ›  Oh Danny Boy

核心数据:NSManagedObject添加值“forKey”-NSNumber截断。替代方案?

  •  0
  • Oh Danny Boy  · 技术社区  · 15 年前

    我知道NSNumber不能超过1/10。我可以使用什么替代方法向核心数据中添加双精度(经度/纬度)?直接使用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 回复  |  直到 15 年前
        1
  •  1
  •   kubi    15 年前

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

        2
  •  0
  •   Jesse Naugher    15 年前

    你可以看看 NSDecimalNumber ? 否则我想你可能得处理这个问题。