swift - 如何使用 swift 在 Realm 中执行连接查询?

标签 swift realm

我要执行连接查询

table1)
class student 
{
   name:String
   classcode:Int
}

table2)
class classcode
{
   classcode:Int
   name:String
}

数据示例

student:

| name | classcode |
| john | 001       |
| Kim  | 002       |

classcode:

| classcode | name     |
| 001       | computer | 
| 002       | Math     |

我想得到输出-? 约翰,电脑

如何在 Realm 中执行查询?

最佳答案

Realm 是一个基于对象的数据库,因此查询中的连接概念不适用于它。

在这种特殊情况下,将 classcode 对象设置为 student 类中的列表是合适的。像这样:

class Class: Object {
   dynamic var classCode = 0
   dynamic var name = ""
}

class Student: Object {
   dynamic var name = ""
   let classes = List<Class>()
}

--- 

let realm = try! Realm()

let computerClass = Class()
computerClass.classCode = 1
computerClass.name = "Computer"

let newStudent = Student()
newStudent.name = "John"
newStudent.classes.append(computerClass)

try! realm.write {
    realm.add(computerClass)
    realm.add(newStudent)
}

Realm List 对象不存储 Object 实例的副本;它们只在其表中存储对相应 Object 的引用。通过这种方式,它复制了您在连接查询中期望的相同类型的设置。

如果您需要进一步说明,请告诉我! :)

关于swift - 如何使用 swift 在 Realm 中执行连接查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39678008/

相关文章:

swift - 使用 CAGradientLayer 旋转 UIControl 无法正确更新 Swift

ios - 数据不会加载到我的 TableView 中

ios - Swift Realm 响应结果不同

ios - 为已发布的 iPhone 应用程序迁移 Realm 数据库的步骤

swift - Swift 中的稍后日期

ios - 调整约束高度后,Swift 约束无法移回屏幕底部

ios - 在闭包之外快速访问数据

javascript - 如何用Realm来组织React Native项目文件?

android - OkBuck 和 Realm 的问题

swift - 为什么 Firebase 自动屏幕报告会导致我的 iOS 应用崩溃?