如何在cloudkit上存储数据

Posted

技术标签:

【中文标题】如何在cloudkit上存储数据【英文标题】:How to store data on cloudkit 【发布时间】:2019-01-05 06:16:52 【问题描述】:

我已经成功在cloudkit上存储了一个应用的数据,但是当我尝试存储第二个应用时,出现了这样的错误:

"CKError 0x600001 d719b0:"权限失败"(10/2007);服务器 message ="不允许创建操作"; UUID = D41B3F33-102B-411D-9CE7-183CD04569DA;容器 ID = iCloud.com.codery.ntd>"

这是我的代码:

let now = Date()
    let timeInterval:TimeInterval = now.timeIntervalSince1970
    let timeStamp = Int(timeInterval)
    let publicDB = CKContainer.default().publicCloudDatabase
    let bookID = CKRecord.ID(recordName: "\(timeStamp)")
    let book = CKRecord(recordType: "Book", recordID: bookID)
    book.setValue("Swift", forKey: "name")

    publicDB.save(book)  savedRecord , error in

        if error == nil 

            print("success")

        else 


            print(error)

        

    

【问题讨论】:

CREATE operation not permitted的可能重复 您使用的是同一个云套件容器吗?通常,您会为每个应用程序获得一个唯一的容器;并且您需要在第二个应用程序中指定它要使用为第一个应用程序创建的容器。我不记得了,但是您可能还需要在打开它时在代码中指定。 【参考方案1】:

这可能就是答案。

Possible to set default CloudKit container not based on application name?

let container = CKContainer(identifier: "iCloud.com.kukodajanos.Dating")
let publicDB = container.publicCloudDatabase
let privateDB = container.privateCloudDatabase

此处显示的标识符对于两个应用程序是否相同。

【讨论】:

以上是关于如何在cloudkit上存储数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CloudKit 中存储对共享记录的引用

检查cloudkit上的私有数据库存储[重复]

CloudKit 记录的本地缓存

如何在 CloudKit 中存储和检索音频文件?

CloudKit:如何使用本地持久存储处理帐户更改?

如何从 CloudKit 更新所有客户端记录?