我有一个应用程序使用它自己的原生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)")
}
}
}
答案 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)")
}
}