共享两个CloudKit CKContainers的两个应用程序:需要UserRecordID

时间:2016-05-27 20:18:25

标签: ios cloudkit

我有一个应用程序使用它自己的原生CKContainer。我正在构建第二个应用程序,它使用第一个应用程序的本机CKContainer,它也是自己的本机容器。我想使用下面的函数访问容器的userID。但是,我只回到第二个应用程序的本机CKContainer UserID。我成功使用第二个应用程序中第一个应用程序的公共数据库。当我尝试在第一个应用程序中执行特定于用户的查询时,我只会苦苦挣扎。

有谁知道这是否可行和/或如何找到第二个CKContainer的用户ID?

func findUserRecordID() {
    CKContainer.defaultContainer().fetchUserRecordIDWithCompletionHandler { (userID, error) -> Void in
        if error == nil {
            // obtain and store id
            if let userID = userID {

                SRData.sharedInstance.currentUser = userID




            }
        } else if error != nil {
            // handle errors

            print("There was an error" + "\(error?.localizedDescription)")
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您需要两个CKContainer个实例,每个容器一个。这两个容器不共享。每个都有自己的公共数据库,自己的私有数据库和自己的用户。

要创建其他容器,请使用:

CKContainer(containerIdentifier: "the-name-of-the-other-container")

答案 1 :(得分:0)

对于每个人,这里引用的是有效的代码。

CKContainer(标识符:" iCloud.XXXX.YYYYY")。fetchUserRecordIDWithCompletionHandler {(userID,error)in

        //

        if error == nil {

            // obtain and store id

            if let userID = userID {



                SRData.sharedInstance.currentV2User = userID



            }

        } else if error != nil {

            // handle error

            print("Error FindUserRecordID " + "\(error?.localizedDescription)")

        }



    }