在我的项目中,使用CloudKit记录类型"用户"(我已经使用其他记录类型名称进行了测试)我创建了一个带有电子邮件字段的记录。
我试图准确匹配该电子邮件并获取匹配的记录。我使用IN或==谓词(对于单个或一组电子邮件)这样做。
let query = CKQuery(recordType: "User", predicate: NSPredicate(format: "email IN %@", emails))
let query = CKQuery(recordType: "User", predicate: NSPredicate(format: "email == %@", "julio_ukohgsp_chevez@tfbnw.net"))
我遇到问题的电子邮件是" julio_ukohgsp_chevez@tfbnw.net" ;,使用此电子邮件检索记录的任何尝试都返回0,但是如果我将其更改为" julio_ukohgsp_chevez @ tfbnw.ne"它会检索确定。
最初我认为它是特殊字符,但其他字符串可以正常工作。然后我假设长度,但其他更长的字符串工作正常。
有没有其他人有这个问题?我很难相信CloudKit而不理解为什么它无法匹配这个字符串。
我问了一个类似的问题,但在我获得详细信息之前,用户能够对此进行测试,并使用此字符串获得相同的结果。这篇文章更简洁,并有重建的步骤。
答案 0 :(得分:0)
试试这个:
let predicateString = "email IN '\(emails)'"
let predicate = NSPredicate(format: predicateString)