• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何使用 NSPredicate 和 CloudKit 获取特定用户的最新帖子?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 15:40:53 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

假设我在 iCloud 中有以下模型:

 ___________         ___________
| Users     |<-_    | Posts     | 
|-----------|   |   |-----------|
| firstName |   |   | text      |
| lastName  |   --- | user      |
 -----------         -----------

我需要获取特定 user 引用的最新 Posts

目前我正在使用这样的谓词:

let userRefs: [CKReference] = [...]
let predicate = NSPredicate(format: "%K IN %@ AND creationDate >= %@", "user", userRefs, NSDate.twentyFourHoursAgo)

let query = CKQuery(recordType: "osts", predicate: predicate)
query.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]

但它为我提供了过去 24 小时内的所有用户 Posts。有没有办法为每个提供的用户引用仅获取一个最新的帖子?

期望的结果是特定用户(例如 [user1, user2, user3])的最新 Posts 数组:

[
    Post<text, user1>
    Post<text, user2>
    Post<text, user3>
]



Best Answer-推荐答案


如果您想检索除默认记录之外的其他记录数(通常最多 100 条),请使用 CKQueryOperation 并设置 .resultsLimit

在您的情况下,您可以在仅为 1 个用户执行查询时将其设置为 1。

使用 CloudKit 无法执行您实际想要执行的查询,因为您需要某种聚合查询。不支持聚合查询。因此,解决此问题的唯一方法是为每个用户执行查询以获取其最新帖子。

但是,有一个可行的解决方法。我以前做过类似的事情。当用户添加新帖子时,您还可以更新用户数据并将最新帖子添加到用户 recrodType。你会有一些重复的数据,但你可以通过查询用户来获得所有最新的帖子。

关于ios - 如何使用 NSPredicate 和 CloudKit 获取特定用户的最新帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31109534/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap