我是iOS开发和领域的新手,在代码优先建立数据库方面拥有丰富的经验。
我在课程常规和锻炼之间有一对多的关系,其中一个例程可能包含许多不同的锻炼。这是我的课程:
class Routine: Object {
//Properties
dynamic var id : Int = 0
dynamic var routineName : String = ""
//Relationships
let workouts = LinkingObjects(fromType: Workout.self, property: "routine")
//Primary Key Declaration
override static func primaryKey() -> String? {
return "id"
}
}
class Workout: Object {
//Properties
dynamic var id : Int = 0
dynamic var workoutName : String = ""
//Relationships
let exercises = List<Exercise>()
dynamic var routine : Routine?
//Primary Key Declaration
override static func primaryKey() -> String? {
return "id"
}
}
我这样做是为了达到理想的关系吗?当我构建它并查看领域浏览器时,Routine中的属性workouts
不会出现。
感谢。
答案 0 :(得分:1)
它的预期行为。 LinkingObjects
表示通过属性关系链接到其拥有的模型对象的零个或多个对象。此外,它是一种自动更新容器类型。添加新的workouts
对象并指定Workout
属性时,routine
会自动更新。
LinkingObjects
被视为&#34;查询&#34;而不是内部持久的财产。访问workouts
属性时,Realm会查询包含匹配的Workout
个对象的routine
个对象。这就是Realm Browser中没有显示workouts
属性的原因。