Bry*_*yan 8 iphone core-location ios
我正在尝试将纬度/经度存储在核心数据中.这些最终可达到6-20位精度.
无论出于何种原因,我将它们作为Core Data中的浮点数,将它们四舍五入,而不是给我准确的值.我试过"十进制"类型,也没有运气.
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;
Run Code Online (Sandbox Code Playgroud)
这是我存储到核心数据中的样本编号的代码:
NSNumber *n = [NSDecimalNumber decimalNumberWithString:@"-97.12345678901234567890123456789"];
Run Code Online (Sandbox Code Playgroud)
以上值打印.甜蜜,我期待的价值:
Printing description of n:
-97.12345678901234567890123456789
Run Code Online (Sandbox Code Playgroud)
再次访问它的代码:
NSNumber *n = [managedObject valueForKey:@"dec"];
NSNumber *f = [managedObject valueForKey:@"flo"];
NSNumber *d = [managedObject valueForKey:@"doub"];
Run Code Online (Sandbox Code Playgroud)
印刷值:
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}
Run Code Online (Sandbox Code Playgroud)
Eva*_*ski 10
你使用过NSNumber包装器吗?
将商店配置为使用NSNumber而不是float或decimal,并使用它来保存坐标:
[NSNumber numberWithDouble:coordinate.latitude]
//Same for longitude.
Run Code Online (Sandbox Code Playgroud)