gpt4 book ai didi

swift - Swift Core Data 中的一对多关系

转载 作者:行者123 更新时间:2023-11-28 08:56:46 25 4
gpt4 key购买 nike

我正在构建一个日记应用程序,您可以在其中创建一个 FocusArea 对象,然后该对象包含 30 个日记条目对象。

所以我在我的数据模型中创建了一对多关系。

然后我实现了两个 NSManagedObject 类:

@objc(焦点区域)类 FocusArea: NSManagedObject {

@NSManaged var focusName: String
@NSManaged var focusStart: NSDate
@NSManaged var focusEnd: NSDate
@NSManaged var completeFlag: Bool
//@NSManaged var entries: NSSet

var entries: NSMutableOrderedSet {
return self.mutableOrderedSetValueForKey("entries")
}

@objc(条目)类条目:NSManagedObject {

 @NSManaged var entryJournal: String
@NSManaged var entryDate: NSDate
@NSManaged var completeFlag: Bool
@NSManaged var entryStatus: Bool
@NSManaged var focus: FocusArea

我可以毫无问题地添加一个 FocusArea,但是当我尝试创建 30 个 Entry 对象并存储在 FocusArea.entries 中时,一切都会崩溃。

将多个 Entry 对象添加到 FocusArea 对象的正确方法是什么?

我离这里很远吗?

@IBAction func saveFocusArea(sender: AnyObject) {

if txtFocusName.text != nil {

let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context: NSManagedObjectContext = appDel.managedObjectContext!

//create new focus area
let entFocus = NSEntityDescription.entityForName("FocusArea", inManagedObjectContext: context)
let newFocus = FocusArea(entity:entFocus!, insertIntoManagedObjectContext: context)

newFocus.focusName = txtFocusName.text!
newFocus.focusStart = NSDate()
newFocus.focusEnd = NSDate().dateByAddingTimeInterval(60*60*24*30)
newFocus.completeFlag = false

//initialize 30 new entries into core data
let entEntry = NSEntityDescription.entityForName("Entry", inManagedObjectContext: context)

for var i = 0; i < 30; i++ {

let newEntry = Entry(entity:entEntry!, insertIntoManagedObjectContext: context)

let c = Double(i)
newEntry.entryDate = NSDate().dateByAddingTimeInterval(60*60*24*c)
newEntry.entryJournal = ""
newEntry.entryStatus = false
newEntry.completeFlag = false

//THIS IS THE PROBLEM AREA
newFocus.entries.append(newEntry)
}
do {
try context.save()
} catch {
print("There's a problem!")
}
}
}

最佳答案

我想通了。我所要做的就是:

newEntry.focus = 新焦点。

所以不是设置父到子的关系,而是设置从子到父的关系。

关于swift - Swift Core Data 中的一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32851963/

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