得到人
问题描述:
我迅速与4个工作MacOS的所有书籍,我有两个核心数据实体(人与书)得到人
我想请所有书籍,wehre人==最大。 有了这个代码,我可以获取所有的书:
let request = NSFetchRequest<Book>(entityName: "Book")
request.predicate = //
request.sortDescriptors = [NSSortDescriptor(key: "bookName", ascending: true)]
do {
let books = try context.fetch(request)
print(books)
} catch { }
但我怎么也得使用谓词只拿到了书,被分配到人的名称为“最大”?
答
- 书籍有一对一的关系 “人” 人,和
- 人有一个属性 “名字”。
所以“person.firstName”是从一本书到 拥有它的人的名字的关键路径,你正在寻找的谓语是
NSPredicate(format: "person.firstName = %@", "Max")
你看看“筛选结果“在https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/FetchingObjects.html中的核心数据编程指南? - 为什么你创建一个'NSFetchRequest'来获取Book对象? –
我想这个文件不能帮助我。我现在可以像这样使用谓词:'request.predicate = NSPredicate(format:“bookName =%@”,“MyBook”)'但是我必须知道谓词是如何得到赋值人的与书籍的关系 – Ghost108
只需按照关键路径,例如'NSPredicate(格式:“person.name =%@”,“Max”)' –