JDM*_*JDM 2 ios swift cloudkit
我需要从与字符串匹配的 cloudkit 中提取记录。
我有一个用户记录类型,带有一个电子邮件字段。我在同一封电子邮件中有多个记录,但我无法通过谓词来获取这些记录。
我已经尝试了所有这些:
let predicate = NSPredicate(format: "email = 'julio_ukohgsp_chevez@tfbnw.net'")
NSPredicate(format: "email == %@", argumentArray: [email])
NSPredicate(format: "email IN %@", [email])
NSPredicate(format: "email contains %@", email)
NSPredicate(format: "email = %@", email)
NSPredicate(format: "email == %@", email)
Run Code Online (Sandbox Code Playgroud)
我的查询指定了记录类型:
let query = CKQuery(recordType: "User", predicate: NSPredicate(format: "email == %@", email))
Run Code Online (Sandbox Code Playgroud)
当我使用 value: true 执行谓词时,我会得到所有记录,包括我想要的记录。
我错过了什么?
编辑 ..
let query = CKQuery(recordType: "User", predicate: NSPredicate(format: "email BEGINSWITH %@", email))
Run Code Online (Sandbox Code Playgroud)
确实有效并带回记录,但我想要精确匹配!
小智 7
我遇到了同样的问题,并且能够通过在我的情况下在用户字段上添加 Queryable 索引来解决它。请注意,添加索引后,我需要再次将数据写入 CloudKit 才能执行查询。
创建谓词的代码:
let user = "test-user"
let userPredicate = NSPredicate(format: "user == %@", user)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2203 次 |
最近记录: |