我的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”>
问题:
这是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) }
原文地址:https://www.jb51.cc/swift/319440.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。