gpt4 book ai didi

快速创建记录并将记录添加到关系中

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

我在 macOS 上使用 swift 4。我将核心数据与两个实体一起使用:

  • 人(与图书有关系)
  • 书籍(与人有关)

NSManagedObject 人

import CoreData

@objc(Person)
public class Person: NSManagedObject {
@NSManaged public var firstName: String!
@NSManaged public var books: NSSet
}

NSManagedObject 书

import CoreData

@objc(Book)
public class Book: NSManagedObject {
@NSManaged public var bookName: String!
@NSManaged public var date: DateString!
@NSManaged public var person: Person?
}

使用此代码我创建一个新的人员记录:

let entity = NSEntityDescription.entity(forEntityName: "Person", in: context)
let newPerson = NSManagedObject(entity: entity!, insertInto: context) as! Person

newPerson.firstName = "Max"

do {
try context.save()
} catch {print(error)}

现在,如果我创建一个新的人员记录,我想直接在 Book 中创建一个新记录 => bookName="Test", date=Date()

我使用的代码可以实现这一点newPerson.books = 吗?或者我是否使用相同的代码“新人记录”(稍作修改)来创建图书记录?

最佳答案

您无法自动创建新的Book。您需要拥有创建实例的代码。您有几个选择:

  1. 就像上面的代码一样。每当您创建一个新的Person时,请在其后面添加创建Book的代码。
  2. 重写 Person 类上的 awakeFromInsert。在您的覆盖中,添加代码以创建新的 Book。现在,您可以使用当前代码创建一个新的 Person,并且每个新的 Person 在您首次创建时都会创建一个新的 Book。<

关于快速创建记录并将记录添加到关系中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46035028/

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