我的应用程序是用 SwiftUI 编写的,使用 Cloudkit 来存储核心数据中的记录。我可以使用
@FetchRequest
获取记录来填充列表。现在我想获取当前用户的 iCloud ID 并将其与另一个全局 ID 进行比较,但我遇到了问题 fetchUserRecordID
...
在查看 Cloudkit Dashboard 的
Users
记录类型时,我能够看到用户记录。但每次运行下面的代码时,我都会收到以下错误:“无法从容器“iCloud.com.my_container_name”的服务器获取容器配置”
我正在运行 Xcode 12.2 Beta 4
ContentView.swift
struct ContentView: View {
@Environment(\.managedObjectContext) private var viewContext
init() {
isCreator()
}
var body: some View {
Text("Hello World")
}
func isCreator() {
CKContainer.default().fetchUserRecordID(completionHandler: { (recordId, error) in
guard let record = recordId, error == nil else {
print("Error: \(error!.localizedDescription)")
return
}
print("Found record")
// Now do something with record...
})
}
} // end ContentView
使用
CKContainer(identifier: "iCloud.name_of_your_container")
代替 CKContainer.default()
我的问题是我将 Cloudkit 容器命名为
testapp
,而我的应用程序的捆绑 ID 为 com.my_team_name.testapp
。运行 Cloudkit 查询时,我不断收到此错误:
Couldn't get container configuration from the server for container "iCloud.com.my_team_name.testapp"
查看 Cloudkit 仪表板后,我意识到我的容器名称实际上只是“testapp”。
一旦我将代码更改为
CKContainer(identifier: "iCloud.testapp")
,它就工作得很好。
它对我有用。谢谢你,兄弟!尊重