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

ios - 检索 tableview Swift 的 Realm 列表属性计数

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

我正在使用 Realm 3 和 Swift 4,但对 Realm 和 Swift 还是很陌生。在这里需要指导

鉴于此 Realm 模型

class Person: Object, Mappable {
    let dog = List<Dog>()

    required convenience init?(map: Map) {
        self.init()
    }
}

如何获取每个人的狗数?

我想要实现的是我的表格 View 上有多个部分,并且每个人都有各自的狗列表。

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    let owner = realm.objects(Person.self)
    return owner.dog.count // This is not working. What should I change it to ?
}

我一直在网上搜索,但找不到有关此类问题的任何指南。

非常感谢您提供的任何帮助。谢谢!



Best Answer-推荐答案


我可能会将 var dog 重命名为 var dogs 以表明它可能包含不止一只狗。

这是一个简单的解决方案,可以打印主人的姓名和狗的数量。

do {
    let realm = try Realm()
    let people = realm.objects(Person.self)

    for person in people {
        let name = person.personName
        print(name)

        let dogs = person.dogs
        print(dogs.count)
    }

} catch let error as NSError {
    print(error.localizedDescription)
}

Realm List 具有 Array 功能,因此可以对其进行迭代、计数和过滤。

还有你问题中的代码

let owners = realm.objects(Person.self)

将 Realm 中的所有 Person 对象分配给所有者 var(一组 Person),因此它不是一个人,而是所有人,这就是它没有 .dog 属性的原因。

您将需要确定 哪个 人应该在 tableView 的每个部分中,查询该人的 Realm,然后返回 person.dogs.count。

用于确定您如何确定哪个人进入哪个部分的代码未在原始问题中显示,但我们假设您希望第 0 部分中的人 0(可能存在排序问题,因此这只是概念性的)

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    let owners = realm.objects(Person.self).sorted('name')
    let thisOwner = owners[section]
    let dogCount = thisOwner.dogs.count
    return dogCount
}

关于ios - 检索 tableview Swift 的 Realm 列表属性计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47652919/

回复

使用道具 举报

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

本版积分规则

关注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