微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Realm 的过滤查询

如何解决Realm 的过滤查询

我有一个函数可以将我的领域表中的所有对象打印到表视图中。我希望能够通过它们的“肌肉”属性过滤这些对象。

这是我的数据库辅助函数

func getMusclesCount()-> Int {
    let storedExercise = realm.objects(StoredExercise.self)
    return storedExercise.count
    
}

//MARK:- getAllMuscelsNames
func getAllMusclesNames()-> [String] {
    var musclesName = [String]()
    let storedExercise = realm.objects(StoredExercise.self)
    for exercise in storedExercise {
        print("Muscle = \(exercise.muscle)")
        musclesName.append(exercise.name)
    }
    return musclesName
} 

这是我的表视图控制器类:

class TableViewController: UITableViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    
}

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}


override func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
    return DBHelper.shared.getAllMusclesNames().count
}

override func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCell(withIdentifier: "cell",for: indexPath)
    if cell == nil {
        cell = UITableViewCell(style: .default,reuseIdentifier: "cell")
    }
    let muscle = DBHelper.shared.getAllMusclesNames()[indexPath.row]
    cell.textLabel?.text = muscle
    return cell
}

我已尝试将 .Filter 添加到“let storedExercise”,但我不确定如何正确设置。任何帮助将不胜感激,谢谢。

解决方法

如果您的 StoredExercise 模型如下所示

class StoredExercise: Object {
  @objc dynamic var muscle = ""
}

然后要获得所有针对二头肌的练习,就是这个

let bicepResults = realm.objects(StoredExercise.self).filter("muscle == 'biceps'")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。