【发布时间】:2015-03-26 19:22:55
【问题描述】:
我有两个模态,Patient 和 PatientDocument 如下所示
@objc (Patient)
class Patient: NSManagedObject {
@NSManaged var id: Int64
@NSManaged var fullName: String
@NSManaged var lastVisitDate: NSTimeInterval
@NSManaged var documents: NSSet
}
@objc (PatientDocument)
class PatientDocument: NSManagedObject {
@NSManaged var id: Int64
@NSManaged var documentType: String
@NSManaged var documentUUID: String
@NSManaged var patient: Patient
}
我已经为患者和文档插入了一些虚拟数据并将它们链接起来,一个患者可以有许多文档(一对多关系)。在我的应用程序(IOS)上,我有主细节布局,主页面上有“Patients”,细节部分有“PatientDocuments”。我想要的是在选择其中一名患者时显示患者的相关文档。
使用 prepareforSegue 我可以将选定的患者传递给文档视图控制器(处理文档的控制器)。在 cellForRowAtIndexPath 中显示文档时,我在检索该患者的相关文档时遇到了麻烦。
有没有办法单独检索与所选患者相关的文档?我尝试打印患者体内的 NSSet documents,它给了我以下输出。
Optional(Relationship 'documents' on managed object (0x79807af0) <Patient: 0x79807af0> (entity: Patient; id: 0x79808e70 <x-coredata://A7367643-744D-417B-BECE-734260B90D9B/Patient/p2> ; data: {
careTeamMember = "0x79786680 <x-coredata://A7367643-744D-417B-BECE-734260B90D9B/Account/p2>";
documents = (
"0x7967d260 <x-coredata://A7367643-744D-417B-BECE-734260B90D9B/PatientDocument/p12>",
"0x7968c0e0 <x-coredata://A7367643-744D-417B-BECE-734260B90D9B/PatientDocument/p8>",
"0x7967d540 <x-coredata://A7367643-744D-417B-BECE-734260B90D9B/PatientDocument/p9>"
);
fullName = Patient3;
id = 2;
isCPO = 1;
lastVisitDate = "2001-01-01 00:08:55 +0000";
questionnaire = (
"0x79689e00 <x-coredata://A7367643-744D-417B-BECE-734260B90D9B/PatientQuestionnaire/p2>",
"0x7968f440 <x-coredata://A7367643-744D-417B-BECE-734260B90D9B/PatientQuestionnaire/p5>",
"0x796a72a0 <x-coredata://A7367643-744D-417B-BECE-734260B90D9B/PatientQuestionnaire/p3>"
);
}) with objects {(
<PatientDocument: 0x796a6300> (entity: PatientDocument; id: 0x7967d260 <x-coredata://A7367643-744D-417B-BECE-734260B90D9B/PatientDocument/p12> ; data: <fault>),
<PatientDocument: 0x79694bf0> (entity: PatientDocument; id: 0x7968c0e0 <x-coredata://A7367643-744D-417B-BECE-734260B90D9B/PatientDocument/p8> ; data: <fault>),
<PatientDocument: 0x7967f410> (entity: PatientDocument; id: 0x7967d540 <x-coredata://A7367643-744D-417B-BECE-734260B90D9B/PatientDocument/p9> ; data: <fault>)
)})
(忽略输出中的问卷 NSSet,患者与另一个包含不同类型文档的类似对象相关,称为问卷)
【问题讨论】:
标签: ios uitableview swift core-data nsset