gpt4 book ai didi

database - 核心数据。某些数据具有 'nil' 和零值

转载 作者:行者123 更新时间:2023-11-30 14:17:58 24 4
gpt4 key购买 nike

我不知道为什么,但我的一些数据为零和零值。我的实体由 1 个 NSDate 和 5 个 Float 属性组成。我有四个 slider 来设置其中四个的值,其中一个是计算值(其他 4 个的算术平均值),NSDate 仅存储当前日期和时间。

var appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

var context:NSManagedObjectContext = appDel.managedObjectContext!

var newHowDoYouFeel = NSEntityDescription.insertNewObjectForEntityForName("HowDoYouFeel", inManagedObjectContext: context) as! NSManagedObject

// var howDoYouFeels = [HowDoYouFeel]()

var totalAfter = (slider1!.value + slider2!.value + slider3!.value + slider4!.value)/4

newHowDoYouFeel.setValue(totalBefore, forKey: "totalBefore")
newHowDoYouFeel.setValue(focusBefore, forKey: "focusBefore")
newHowDoYouFeel.setValue(moodBefore, forKey: "moodBefore")
newHowDoYouFeel.setValue(relaxBefore, forKey: "relaxBefore")
newHowDoYouFeel.setValue(energyBefore, forKey: "energyBefore")
newHowDoYouFeel.setValue(NSDate(), forKey: "date")

newHowDoYouFeel.setValue(totalAfter, forKey: "totalAfter")
newHowDoYouFeel.setValue(slider1!.value, forKey: "focusAfter")
newHowDoYouFeel.setValue(slider2!.value, forKey: "moodAfter")
newHowDoYouFeel.setValue(slider3!.value, forKey: "relaxAfter")
newHowDoYouFeel.setValue(slider4!.value, forKey: "energyAfter")
newHowDoYouFeel.setValue(NSDate(), forKey: "date")

context.save(nil)

这是获取数据的代码:

 var appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
var context:NSManagedObjectContext = appDel.managedObjectContext!
var newHowDoYouFeel = NSEntityDescription.insertNewObjectForEntityForName("HowDoYouFeel", inManagedObjectContext: context) as! NSManagedObject
var howDoYouFeels = [HowDoYouFeel]()
var fetchRequest = NSFetchRequest(entityName: "HowDoYouFeel")
fetchRequest.returnsObjectsAsFaults = false
var error : NSError?



if let howDoYouFeels = context.executeFetchRequest(fetchRequest, error: &error) as? [HowDoYouFeel]{

println("count is: \(howDoYouFeels.count)")



if howDoYouFeels.count > 0 {
for howDoYouFeel in howDoYouFeels {
println(howDoYouFeel)
}
}
}
}
else {
println("empty")

}
}

else {
println("Fetch failed: \(error)")

}

NSManaged 类如下所示:

import Foundation
import CoreData

HowDoYouFeel 类:NSManagedObject {

@NSManaged var totalBefore: Float
@NSManaged var totalAfter: Float
@NSManaged var focusBefore: Float
@NSManaged var focusAfter: Float
@NSManaged var moodBefore: Float
@NSManaged var moodAfter: Float
@NSManaged var relaxBefore: Float
@NSManaged var relaxAfter: Float
@NSManaged var energyBefore: Float
@NSManaged var energyAfter: Float
@NSManaged var date: NSDate

}

但是当我尝试打印它时,一些数据看起来像这样:

<Scroll_tab.HowDoYouFeel: 0x7fe4624380c0> (entity: HowDoYouFeel; id: 0x7fe462428430 <x-coredata:///HowDoYouFeel/t289EB596-9019-441F-86F0-7225F85A46B23> ; data: {
date = nil;
energyAfter = 0;
energyBefore = 0;
focusAfter = 0;
focusBefore = 0;
moodAfter = 0;
moodBefore = 0;
relaxAfter = 0;
relaxBefore = 0;
totalAfter = 0;
totalBefore = 0;

有些数据可以具有所有正确的值。

我做错了什么?

最佳答案

好吧,所有基元都是 0,因为这是它们设置之前的默认值。您的日期是一个对象,而不是基元,这就是为什么它是 nil 而不是 0(Nil 表示缺少对象引用的值)。

我不知道 newHowDoYouFeel 发生了什么,但对于 howDoYouFeels 数组,它看起来像返回的一个或多个 howDoYouFeel 对象

context.executeFetchRequest(fetchRequest, error: &error)

尚未设置任何成员。您在最后一段代码摘录中看到的是一个 howDoYouFeel,它已创建,但在打印语句之前保持不变。

或者至少这是我的新手观点。我会检查您的提取请求(它的代码或它的实现)是否可能导致问题。

关于database - 核心数据。某些数据具有 'nil' 和零值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30902484/

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