iphone - 在 iOS 核心数据中存储高精度纬度/经度数字

标签 iphone ios core-location

我正在尝试将纬度/经度存储在核心数据中。这些最终达到 6-20 位精度。

无论出于何种原因,我将它们作为 Core Data 中的 float ,将它们四舍五入,但没有给我返回确切的值。我试过“十进制”类型,也没有运气。

NSStrings 是我唯一的选择吗?

编辑

NSManagedObject:

@interface Event :  NSManagedObject  
{
}

@property (nonatomic, retain) NSDecimalNumber * dec;
@property (nonatomic, retain) NSDate * timeStamp;
@property (nonatomic, retain) NSNumber * flo;
@property (nonatomic, retain) NSNumber * doub;

这是我存储到核心数据中的样本编号的代码:

NSNumber *n = [NSDecimalNumber decimalNumberWithString:@"-97.12345678901234567890123456789"];

上面的值打印出来。甜蜜,我期待的值(value):

Printing description of n:

-97.12345678901234567890123456789

再次访问的代码:

NSNumber *n = [managedObject valueForKey:@"dec"];
NSNumber *f = [managedObject valueForKey:@"flo"];
NSNumber *d = [managedObject valueForKey:@"doub"];

打印值:

Printing description of n:
    -97.1234567890124

    Printing description of f:
    <CFNumber 0x603f250 [0xfef3e0]>{value = -97.12345678901235146441, type = kCFNumberFloat64Type}

    Printing description of d:
    <CFNumber 0x6040310 [0xfef3e0]>{value = -97.12345678901235146441, type = kCFNumberFloat64Type}

最佳答案

你用过 NSNumber 包装器吗?

将您的商店配置为使用 NSNumber,而不是 float 或小数,并使用它来保存坐标:

[NSNumber numberWithDouble:coordinate.latitude]
//Same for longitude.

关于iphone - 在 iOS 核心数据中存储高精度纬度/经度数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4585331/

相关文章:

ios - 您的二进制文件未针对 iPhone 5 进行优化,LaunchImage {320,568}

ios - 是否有适用于 Mac 的图形工具来帮助在层上定位 CCNode 对象?

ios - 单个 HTTP 请求中的双请求 header

ios - 如何从我的自定义正在进行的调用 UI 结束 callkit 上的调用 session ?

ios - 显示 "Cannot find iBeacon"消息

iphone - 如何实现高级 TableView 标题

java - 如何将我的Java程序变成可以发送推送通知的 "app"?

objective-c - 在 block 中返回非指针对象时出现问题

iphone - UIAlertViewStylePlainTextInput 返回键委托(delegate)

ios - 更改 iPhone 应用程序中的系统弹出窗口以获取核心位置权限