
失败的代码的简化版本(导致相同的错误)是:
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)} 总结 以上是内存溢出为你收集整理的swift – CKContainer.discoverAllIdentities总是失败全部内容,希望文章能够帮你解决swift – CKContainer.discoverAllIdentities总是失败所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)