Question:
什麼是在領域中使用嵌套對象的正確方法?Realm中的嵌套對象
任務:
我有一個叫做目標的模型,例如, 「減肥」和稱爲「條紋」的模型,例如本週你多久檢查一次。
這個想法是一個用戶專注於1x'Streak'的目標,最終他們可以開始新的連勝。因此,我想要有多個涉及一個目標的條紋。
這裏是模型我到目前爲止:
條紋模式
import Foundation
import RealmSwift
class Streak: Object {
dynamic var owner: Goal!
dynamic var StartDate = NSDate()
dynamic var Day1 = ""
dynamic var Day2 = ""
dynamic var Day3 = ""
dynamic var Day4 = ""
dynamic var Day5 = ""
dynamic var Day6 = ""
dynamic var Day7 = ""
dynamic var Completed = ""
dynamic var Active = ""
// Specify properties to ignore (Realm won't persist these)
// override static func ignoredProperties() -> [String] {
// return []
// }
}
目標模式
class Goal: Object {
dynamic var id = 0
dynamic var Title = ""
dynamic var Aim = ""
dynamic var Action = ""
dynamic var Active = 0
let streaks = List<Streak>()
override class func primaryKey() -> String! {
return "id"
}
// Specify properties to ignore (Realm won't persist these)
// override static func ignoredProperties() -> [String] {
// return []
// }
}
正如你所看到的,我給自己定了streak
的「所有者」爲Goal!
。我還在目標中創建了id
的主鍵,並在目標模型中創建了一個streaks
的列表。
我不明白的是如何在區域中正確存儲streak
。
要存儲一個目標,我有這樣的:
let goalObj = Goal()
goalObj.id = newID
goalObj.Title = setGoal.text!
goalObj.Aim = ""
goalObj.Action = setHabit.text!
goalObj.Active = 1
// goalObj.streaks = [NSDate(),"1","1","1","1","1","1","1","1","1"]
let realm = try! Realm()
try! realm.write {
realm.add(goalObj)
我評論的goalObj.streaks線,因爲它是不正確的,給出了一個錯誤(值都是假的)。
我的具體問題是:
1.如何將存儲連勝對象,它引用了一個目標 - 我在哪裏把ID,如果在所有。
2.如何更新連勝。我應該創建一個streakID字段作爲主鍵嗎?我沒有看到像使用MySql一樣使用外鍵的方法。 3.是這個任務需要的列表嗎?
對於初學者問題的道歉。讚賞,馬特。需要