从CoreData中的多个实体获取属性Swift
问题描述:
我有两个名为Patients和Recordings的Core数据实体。病人可以有单个或多个记录。我希望当一个视图加载时,我可以在单次获取中获取两个实体属性的信息,就像我们在sql中使用join一样。任何帮助?从CoreData中的多个实体获取属性Swift
的患者可以具有单个记录听写或多个。现在在视图负载上,我显示了来自核心数据患者实体的所有患者。我想在表格单元格中显示图像,如果患者已经完成了录制,它会显示录制图标,或者如果已完成转录,则它还具有转录图标,如果患者没有录制,则没有任何图标显示。我想要获取表格的数据在一个单一的提取。
func FetchSearchData() {
let uid = defaults.value(forKey: "UserID")
searchTasks.removeAll()
let fetchRequest:NSFetchRequest<Patients> = Patients.fetchRequest()
let sortDescriptor = NSSortDescriptor(key: "dateSchedule", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
let predicate = NSPredicate(format: "(userID=%@)", uid as! CVarArg)
fetchRequest.predicate = predicate
do {
let count = try getContext().count(for: fetchRequest as! NSFetchRequest<NSFetchRequestResult>)
if count > 0 {
let fetchResult = try getContext().fetch(fetchRequest)
for item in fetchResult {
searchTasks.append(item)
searchTableView.reloadData()
}
} else {
searchTableView.reloadData()
}
}catch {
print(error.localizedDescription)
}
}
我建立了关系,就像我们在图像中看到的一样。我怎样才能检查哪个病人有录音存在?
答
使用核心数据一次只能提取一种实体类型。核心数据不是SQL。
对此的核心数据风格方法将类似于:获取Patients
的实例。然后使用每个Patients
实例上的sounds
关系获取有关存在哪些记录的信息。例如,如果您想知道特定患者是否有录音,请查看sounds
关系 - 这是一组 - 并查看是否为空。
+0
@Robotic猫谢谢你编辑的问题。我一定会在下次来这里时检查有关提问的规则。谢谢。 – Imran
我不是核心数据专家,但您到目前为止尝试过什么?什么失败了?你的核心数据模型是什么样的?你正在尝试什么取回请求? –
你可以至少伪代码你想要做的提取 – SeanLintern88
@statoverflow.com/how-to-ask – sasquatch