我的应用需要将从XML解析的纬度和经度值存储到Core Data中。目前,我有一个核心数据模型,其中这些属性设置为double
类型。模型对象的头文件将它们定义为NSNumber
如何将存储在CurrentNodeText
变量中的字符串转换为Core Data中存储所需的类型?另外,这是在Core Data中存储坐标数据的适当方法吗?
答案 0 :(得分:5)
NSString有一个doubleValue
方法,它将检查字符串以查看它是否看起来像一个double并返回该值,如果是这样(如果不是则返回0.0)。
至于这是否是存储坐标数据的合适方式:取决于。二进制浮点数不能精确地表示十进制数可以的每个数字。在这些情况下,它们会存储一些非常接近的东西,但这可能会导致需要精确度的计算失败 - 例如,比较浮点数是否相等并测试一个浮点数是否小于另一个浮点数不会产生精确结果。如果确切的数字很重要,您可能更愿意将数字保存在NSDecimalNumber,NSDecimal或NSString中。