swift – CKContainer.discoverAllIdentities总是失败

swift – CKContainer.discoverAllIdentities总是失败,第1张

概述我的CloudKit应用程序中的CKContainer.discoverAllIdentities请求总是失败.它在几天的过程中不断失败. 失败的代码的简化版本(导致相同的错误)是: private func getContacts(completion: (([CKUserIdentity]?) -> Void)?) { container.status(forApplicationPe 我的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)}
总结

以上是内存溢出为你收集整理的swift – CKContainer.discoverAllIdentities总是失败全部内容,希望文章能够帮你解决swift – CKContainer.discoverAllIdentities总是失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1035698.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存