代码之家  ›  专栏  ›  技术社区  ›  Georg

如何建模我的CloudKit数据

  •  2
  • Georg  · 技术社区  · 6 年前

    在我的应用程序中,我决定使用CloudKit作为同步后端。 我的应用程序不是关于项目的,但是为了简单起见,让我们这么说……

    所以…在我的应用程序中,用户将有多个项目。每个都包含与该项目关联的多个实体。例如任务,也包括提醒等。

    所有这些数据都将存储在用户专用数据库中。公共数据库中不会有任何内容。

    现在用户可以有多个项目。

    我的第一个问题: 每个项目都应该在自己的ckrecordzone中吗?我没有看到这样做的好处????有人能给我解释一下拥有多个记录区有什么好处吗?所以目前所有的项目都在一个区域内。

    接下来,我希望用户能够与其他人共享他的所有数据。当前的问题是,由于项目当前是数据库中的根记录,所以我需要为每个项目创建一个共享,对吗????在我的应用程序中,单独邀请用户参加每个项目并没有真正意义,所以我想以某种方式将其存档。 创建一个将项目作为子项目的新根记录,然后用户会邀请某人访问这个新根记录,这样做有意义吗?

    最后一个问题…是否有类似SACK团队之类的人来询问有关Cloudkit的问题?似乎比在StackOverflow上开始一个新问题更容易,因为我的问题是我的应用程序特有的…

    1 回复  |  直到 6 年前
        1
  •  3
  •   Clifton Labrum    6 年前

    _defaultZone

    let customZone = CKRecordZone(zoneName: "projectZone")
    
    // Save the zone in the private database
    let container = CKContainer(identifier: "...")
    let privateDB = container.privateCloudDatabase
    
    privateDB.save(customZone){ zone, error in
      if let error = error{
        print("Zone creation error: \(String(describing: error))")
      }else{
        print("Zone created: \(zone)")
      }
    }
    

    • Project
    • Task
    • Reminder

    CKShare

    //Get a reference to the zone you created
    let zoneID = CKRecordZoneID(zoneName: "projectZone", ownerName: CKCurrentUserDefaultName)
    
    //Create a project record
    let projectRecord = CKRecord(recordType: "Project", zoneID: zoneID)
    projectRecord.setValue("My Cool Project", forKey: "name")
    
    //Create a task record
    let taskRecord = CKRecord(recordType: "Task", zoneID: zoneID)
    taskRecord.setValue("My Task Name", forKey: "name")
    
    //Create an association between the task and its parent project
    let parentReference = CKReference(record: projectRecord, action: .deleteSelf)
    taskRecord.setValue(parentReference, forKey: "project")
    
    //When sharing, allow this task to be automatically shared if the parent project is shared
    taskRecord.setParent(projectRecord)
    

    name String project Reference

    推荐文章