swift – CKContainer.discoverAllIdentities总是失败
发布时间:2020-12-14 05:30:59 所属栏目:百科 来源:网络整理
导读:我的CloudKit应用程序中的CKContainer.discoverAllIdentities请求总是失败.它在几天的过程中不断失败. 失败的代码的简化版本(导致相同的错误)是: private func getContacts(completion: (([CKUserIdentity]?) - Void)?) { container.status(forApplicationP
我的CloudKit应用程序中的CKContainer.discoverAllIdentities请求总是失败.它在几天的过程中不断失败.
失败的代码的简化版本(导致相同的错误)是: private func getContacts(completion: (([CKUserIdentity]?) -> Void)?) { container.status(forApplicationPermission: .userDiscoverability) { [weak self] status,error in if let error = error { print(error) } switch status { case .granted: self?.discover(completion: completion) default: print("status not granted") } } } private func discover(completion: (([CKUserIdentity]?) -> Void)?) { let op = CKDiscoverAllUserIdentitiesOperation() op.qualityOfService = .userInitiated op.discoverAllUserIdentitiesCompletionBlock = { error in if let error = error { print(error) } } op.userIdentityDiscoveredBlock = { identity in print(identity) } op.start() } 它会导致错误传递给op.discoverAllUserIdentitiesCompletionBlock.日志中的错误描述是: < CKError 0x1c4a51a60:“服务器拒绝请求”(15/2000); server message =“内部服务器错误”; uuid = F67453B9-712D-4E5E-9335-929123E3C978; container ID =“iCloud.com.huntermaximillionmonk.topdraw”> 以前,此操作可以使用,但仅适用于某些iCloud用户.现在不适合我的两个测试用户.
问题:
这是iOS 11.0中的一个问题 根据我的测试: 这在设备上的Xcode 9.2 / iOS 11.2.1中工作正常(不是模拟器) 重置模拟器后第一次工作,随后不起作用,但是在设备上它重复工作. 码: let queue = OperationQueue() func requestPermissions(for permissions: CKApplicationPermissions,completionHandler: @escaping (CKApplicationPermissionStatus,Error?) -> ()) { CKContainer.default().requestApplicationPermission(permissions) { status,error in if let error = error { print("Error for requesting (permissions) - (error)") } let statusMessage : String switch status { case .granted: statusMessage = "Granted" case .denied: statusMessage = "Denied" case .couldNotComplete: statusMessage = "Could not complete" case .initialState: statusMessage = "Initial state" } print("Permission - (statusMessage)") completionHandler(status,error) } } private func discoverAllUsers() { let operation = CKDiscoverAllUserIdentitiesOperation() operation.userIdentityDiscoveredBlock = { userIdentity in print("userIdentity = (userIdentity)") } operation.discoverAllUserIdentitiesCompletionBlock = { error in if let error = error { print("Discover all users Error: (error) ") } else { print("Discover all users completed successfully") } } queue.addOperation(operation) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 从字符串创建seo友好URL
- C在函数参数上传递std :: unique_ptr对象作为引用的正确方法
- c – 如果在堆上分配对象数组的过程中抛出异常,有人可以准确
- ruby – 删除文本文件中的特定行?
- 如何实现被动引流 优化关键词就够了
- 如何从Swift中的UIColor获取RGB代码(INT)
- ruby-on-rails – jquery ajax 422在Chrome中取得了成功
- ruby-on-rails – rcov Rails3 rc现在已经脱离了linecache依
- 一日一点RakNet(8)--第三方支持
- Oracle参数“”_db_block_check_objtyp”