Macos swift 3-核心数据关系-获取数据
我使用macOS的核心数据和swift 3Macos swift 3-核心数据关系-获取数据,macos,core-data,swift3,xcode8,Macos,Core Data,Swift3,Xcode8,我使用macOS的核心数据和swift 3 我必须去实体:人和书 我可以创造一个人 我可以创建一本书,它将分配给一个人 我知道怎样才能得到信息,哪本书被分配给哪一个人,最后用这个代码 但是我怎样才能得到谁拥有哪本书的信息呢 我在上一篇文章中提供了更多详细信息: 非常感谢:) 让appdelegate=NSApplication.shared()。委托为!AppDelegate 让上下文=appdelegate.persistentContainer.viewContext var books
- 我必须去实体:人和书
- 我可以创造一个人
- 我可以创建一本书,它将分配给一个人
- 我知道怎样才能得到信息,哪本书被分配给哪一个人,最后用这个代码
让appdelegate=NSApplication.shared()。委托为!AppDelegate
让上下文=appdelegate.persistentContainer.viewContext
var books=[Book]()
let request=NSFetchRequest(entityName:“Book”)
做{
books=尝试上下文。获取(请求)为![Book]
}捕获{}
书中有书{
打印(“标题:\(book.Title!)”)
打印(“个人:\(book.Person!.name!))
}
根据您的模型,一个人可以拥有多本书,因此您需要两个重复循环
请注意,通用获取请求避免显式类型转换,并将与成功获取相关的代码放入do
范围中
let appdelegate = NSApplication.shared().delegate as! AppDelegate
let context = appdelegate.persistentContainer.viewContext
var people = [Person]()
let request = NSFetchRequest<Person>(entityName: "Person")
do {
people = try context.fetch(request)
for person in people {
print("Person: ", person.name!)
for book in person.books {
print("Title: ", book.title!)
}
}
}
catch { print(error) }
让appdelegate=NSApplication.shared()。委托为!AppDelegate
让上下文=appdelegate.persistentContainer.viewContext
var people=[Person]()
let request=NSFetchRequest(entityName:“Person”)
做{
people=try context.fetch(请求)
为人处事{
打印(“个人:”,个人名称!)
我要亲自去看书{
打印(“标题:”,书。标题!)
}
}
}
捕获{打印(错误)}
PS:如另一个问题中所提到的,在模型中声明<代码>标题>代码>代码> >名称>代码,以消除感叹号
。let appdelegate = NSApplication.shared().delegate as! AppDelegate
let context = appdelegate.persistentContainer.viewContext
var people = [Person]()
let request = NSFetchRequest<Person>(entityName: "Person")
do {
people = try context.fetch(request)
for person in people {
print("Person: ", person.name!)
for book in person.books {
print("Title: ", book.title!)
}
}
}
catch { print(error) }