You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 3中Realm对象过滤:筛选isInvited为1的Work对象

当然可以实现!

完全没问题,Realm的查询API非常强大,轻松就能筛选出isInvited字段值为1的Work对象。这里给你两种常用的实现方式:

方式一:使用字符串格式的谓词(兼容性好)

这种方式适用于所有Swift版本,直接通过字符串指定筛选条件:

do {
    // 先获取Realm实例
    let realm = try Realm()
    
    // 执行筛选:获取所有isInvited等于1的Work对象
    let invitedWorks = realm.objects(Work.self).filter("isInvited == 1")
    
    // 遍历处理结果(示例)
    for work in invitedWorks {
        print("受邀用户ID: \(work.id), 姓名: \(work.firstName ?? "") \(work.lastName ?? "")")
    }
} catch {
    print("初始化Realm失败: \(error.localizedDescription)")
}

方式二:使用类型安全的键路径(Swift 5.7+推荐)

如果你用的是Swift 5.7及以上版本,更推荐这种方式,它能在编译期检查字段名是否正确,避免拼写错误:

do {
    let realm = try Realm()
    let invitedWorks = realm.objects(Work.self).filter(\.isInvited == 1)
    
    // 后续处理逻辑和上面一致
} catch {
    print("初始化Realm失败: \(error.localizedDescription)")
}

补充说明

Realm的查询是延迟加载的,也就是说filter方法执行时并不会立刻从数据库读取数据,只有当你开始遍历结果、访问具体对象属性的时候,才会真正执行查询,这样能保证查询的性能效率。

内容的提问来源于stack exchange,提问作者Irwan Madness

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:22:38