gpt4 book ai didi

ios - CoreData Fetch 从 Double 创建 String

转载 作者:行者123 更新时间:2023-11-28 18:58:39 24 4
gpt4 key购买 nike

我正在查询 HealthKit 并将条目保存到 CoreData:这是我的获取请求:

func queryCoreDataData () -> NSArray {
var context = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext!

var request = NSFetchRequest(entityName: "HKActiveEnergyBurned")
request.returnsObjectsAsFaults = false
var hkActiveEnergyBurned = context.executeFetchRequest(request, error: nil)! as [HKActiveEnergyBurned]
var activeEnergyBurnedData = (hkActiveEnergyBurned as NSArray).valueForKey("activeEnergyBurned_data") as NSArray
println("CoreData Fetch activeEnergyBurnedData: \(activeEnergyBurnedData)")

return activeEnergyBurnedData
}

我将每个条目打印到控制台。控制台显示:

Saving to CoreData:
CD save activeEnergyBurned: 740.0
CD save activeEnergyBurned: 725.0
CD save activeEnergyBurned: 4.0
CD save activeEnergyBurned: 152.0
CD save activeEnergyBurned: 459.0

当我稍后获取数据时,一些条目变成了字符串!

CoreData Fetch activeEnergyBurnedData: (
"739.9999999999999",
725,
4,
152,
"459.0000000000001"
)

这是我的 CoreData 模型的图片

CoreData Model

和 NSManaged 对象:

import Foundation
import CoreData

class HKActiveEnergyBurned: NSManagedObject {

@NSManaged var activeEnergyBurned_data: NSNumber
@NSManaged var activeEnergyBurned_date: NSDate

}

我试着用谷歌搜索这个,但什么也没有出现。也许我问错了问题。 有谁知道为什么会发生这种情况以及我如何确保值保持双倍?(您可能会注意到 NSManaged 对象作为 NSNumber 出现,我也不确定为什么会发生这种情况)。 任何帮助将不胜感激。谢谢!

最佳答案

当您的数字包含小数点时,它们会被引号括起来打印,但它们仍然存储为数字。您可以简单地重现这一点:

let array = [ 739.9, 725 ] as NSArray
println("\(array)")

输出:

(
"739.9",
725
)

字符串插值使用 description 方法(在本例中),这正是 -[NSArray description] 的工作方式。这不是错误。如果您不喜欢它,则必须“手动”将数组转换为字符串,而不是依赖于description

关于ios - CoreData Fetch 从 Double 创建 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28772120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com