【发布时间】:2020-09-20 19:19:03
【问题描述】:
我的数据模型中有 2 个实体,如下图所示:
产品:
出席:
我正在保存具有出勤关系的产品!现在,我需要获取具有特定 Attendance.objectID 的产品
我正在尝试以下代码:
func fetchProducts() {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let fetchRequest = NSFetchRequest(entityName: "Product")
let attendancePredicate = NSPredicate(format: "attendance.objectID == \(currAttendance.objectID)")
fetchRequest.predicate = attendancePredicate
print("Att = \(currAttendance.name!)")
viewTypeSKU.hidden = true
do {
let results = try managedContext.executeFetchRequest(fetchRequest)
products = results as! [NSManagedObject]
} catch let error as NSError {
print("Could not fetch \(error), \(error.userInfo)")
}
}
我收到错误:'Unable to parse the format string "attendance.objectID ==
【问题讨论】:
-
什么是 currAttendance?你从哪里抓到的?
-
试试
NSPredicate(format: "attendance.objectID = %@", currAttendance.objectID) -
你也可以设置一个逆向,这样你就可以做
currAttendance.product并完成它。 -
为什么要在谓词中匹配对象 ID?这几乎不是解决任何问题的正确方法。