SwiftData One-To-Many
SwiftData One-To-Many
How to create one-to-many relationships
- If you intend to use inferred relationships, one side of your data must be optional.
- If you use an explicit relationship where one side of your data is non-optional, be careful how you delete objects - SwiftData uses the
.nullifydelete rule by default, which can put your data into an invalid state. To avoid this problem, either use an optional value, or use a.cascadedelete rule.- Do not attempt to use collection types other than
Array, because your code will simply not compile.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Model class Movie {
var name: String
var releaseYear: Int
var director: Director?
init( ...
}
@Model class Director {
var name: String
@Relationship(deleteRule: .nullify, inverse: \Movie.director) var movies: [Movie]
init( ...
}
This post is licensed under CC BY 4.0 by the author.