ios – CKRecord获得密钥的价值

ios – CKRecord获得密钥的价值,第1张

概述我正在尝试根据用户名获取用户的值.我能够使用以下方法获得正确的用户: class func getByUsername(username: String, callback: (records: [CKRecord]) -> ()){ getSummary(NSPredicate(format: "Username == %@", username)){(records: [CKRecor 我正在尝试根据用户名获取用户的值.我能够使用以下方法获得正确的用户:

class func getByUsername(username: String,callback: (records: [CKRecord]) -> ()){    getSummary(nspredicate(format: "Username == %@",username)){(records: [CKRecord]) -> VoID in        callback(records: records)    }}class func getSummary(predicate: nspredicate,callback: (records: [CKRecord]) -> ()){    let query = CKquery(recordtype: "UserInfo",predicate: predicate)    let queryOperation = CKqueryOperation(query: query)    queryOperation.desiredKeys = ["ID"]    var records = [CKRecord]()    queryOperation.recordFetchedBlock = {record in records.append(record)}    queryOperation.queryCompletionBlock = {_ in callback(records: records)}    CKContainer.defaultContainer().publiccloudDatabase.addOperation(queryOperation)}

然后我可以通过以下方式获得正确的记录:

getByUsername("Username"){(records: [CKRecord]) -> VoID in  var record: CKRecord = records[0]}

我也可以通过使用获得正确的ID

var ID: String = record.recordID.recordname

所以我知道我正在获取正确的记录,但是,当我尝试从记录中获取值时,例如用户的电子邮件,则返回nil:

var email: String = record.objectForKey("Email") as String

我也尝试过:

record.valueForKey("Email")record.valueForKeyPath("Email")

当我打印record.allKeys()时,我得到一个空数组,[],当我打印record.allTokens()时,我得到一个nil的返回

我没有正确地从记录中获取值,或者我是否必须在数据库中查询我希望使用记录ID获取的每个值?基于the documentation所说的:

A CKRecord object is a dictionary of key-value pairs that you use to fetch and save the data of your app.

我假设我不必查询数据库中我想获得的每个值,并且从iCloud获取值时,这些值会自动插入到CKRecord中

解决方法 当你遗漏这条线时:

queryOperation.desiredKeys = ["ID"]

查询将返回所有字段.

您没有收到ID字段可能是因为它是一个可以使用的系统字段

var ID = record.recordID.recordname
总结

以上是内存溢出为你收集整理的ios – CKRecord获得密钥价值全部内容,希望文章能够帮你解决ios – CKRecord获得密钥的价值所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1043571.html

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

发表评论

登录后才能评论

评论列表(0条)

保存