Swift / IOS:访问存储在NSSet中的对象

刺身

我有两个态,如下所示的PatientPatientDocument

@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)上,我具有母版详细信息布局,母版上具有“患者”,而“详细信息”部分上具有“ PatientDocuments”。我想要的是在选择一位患者时显示一位患者的相关文档。

使用prepareforSegue,我可以将选定的患者传递给documentsViewcontroller(一个处理文档的控制器)。cellForRowAtIndexPath中显示文档时,我在检索该患者的相关文档时遇到了麻烦。

有没有一种方法可以单独检索与所选患者相关的文档?我尝试打印患者体内的NSSet文档,它提供了以下输出。

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,患者与另一个包含不同类型文档的类似对象(称为调查表)相关)

温恩

您需要将集合排序到一个数组中,以便可以有组织地显示它。您可以直接使用(使用sortedArrayUsingDescriptors:)进行操作,也可以将获取请求与排序描述符一起使用(最好是传递给,NSFetchedResultsController这样您就无需同时将所有文档都加载到内存中并监视更改)。

最好是您的文档带有可以分类的时间戳或类似时间戳,因为这对用户有意义。您可以按ID排序,这可能等于同一件事。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从OpenStack VM实例内部访问存储在Swift对象中的文件

来自分类Dev

Swift 1.2中的NSSet setByAddingObject

来自分类Dev

访问存储在类Swift中的变量

来自分类Dev

从Swift中的扩展访问结构的存储属性

来自分类Dev

存储自定义对象(Swift 中的类)以供 Objective-C 方法访问

来自分类Dev

在Swift中持久存储对象数组

来自分类Dev

在Swift中持久存储对象数组

来自分类Dev

访问数组中对象的属性 - Swift 3.0

来自分类Dev

从NSSet中获取Swift可选值

来自分类Dev

在 Swift iOS 中访问 Facebook 相册

来自分类Dev

如何存储和访问Twitter Fabric登录会话(iOS / Swift)?

来自分类Dev

iOS Swift 将领域对象存储到 UserDefaults.standard

来自分类Dev

覆盖数组Swift iOS中的旧对象

来自分类Dev

从Swift访问Azure表存储

来自分类Dev

Swift:如何检查对象的核心数据NSSet

来自分类Dev

Swift:如何检查对象的核心数据NSSet

来自分类Dev

在 Swift 中的 SQLite 中存储指向对象的指针

来自分类Dev

Swift NSSet和CoreData

来自分类Dev

在Swift中存储指针

来自分类Dev

Swift UserDefault - 存储大对象?

来自分类Dev

Swift中的字典访问

来自分类Dev

在Swift中访问UISegementedControl

来自分类Dev

如何将游戏关卡对象存储在Swift数组中?

来自分类Dev

如何在Swift中访问深度嵌套的对象

来自分类Dev

无法在Swift的collectionview中访问Core Data对象

来自分类Dev

Swift:似乎无法访问嵌套数组中的对象

来自分类Dev

Swift中的模型对象

来自分类Dev

在Swift中编码对象

来自分类Dev

Swift中的对象数组