Realm Model被定義為具有常規屬性的常規Swift類。要創建一個,只需直接宣告Object或現有Realm模型類。Realm Model對象的功能與其他任何Swift對像一樣。您可以在它們上自定義型態,使它們符合協議,並像使用其他任何對像一樣使用它們。主要限制是只能在創建對象的線程上使用對象。
import RealmSwift
// Dog model
class Dog: Object {
@objc dynamic var name = ""
@objc dynamic var owner: Person? // Properties can be optional
}
// Person model
class Person: Object {
@objc dynamic var name = ""
@objc dynamic var birthdate = Date(timeIntervalSince1970: 1)
let dogs = List<Dog>()
}
例子
由於Realm在啟動時會解析代碼中定義的所有模型,因此即使從未使用過,它們也必須全部有效。
Realm支持以下屬性類型:Bool, Int, Int8, Int16, Int32, Int64, Double, Float, String, Date, and Data.
String, Date, 和 Data可以使用標準Swift語法將屬性聲明為可空值或不可為空值。數字需要用 RealmOptional 來宣告。
class Person: Object {
@objc dynamic var name: String? = nil
let age = RealmOptional<Int>()
}
RealmOptional 支援 Int, Float, Double, Bool 和所有大小的 Int (Int8, Int16, Int32, Int64).