2

在我的项目中,使用 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”,它将检索到 OK。

最初我认为它是特殊字符,但其他字符串可以正常工作。然后我假设长度,但其他更长的字符串工作正常。

还有其他人有这个问题吗?我很难相信 CloudKit 却不明白为什么它不能匹配这个字符串。

我问了一个类似的问题,但在获得详细信息之前,用户能够对此进行测试并使用此字符串得到相同的结果。这篇文章更加简洁,并且有重新创建的步骤。

4

1 回答 1

0

尝试这个:

let predicateString = "email IN '\(emails)'"
let predicate = NSPredicate(format: predicateString)
于 2016-11-26T04:53:54.170 回答