0
我正在嘗試Realm(使用pod安裝)。我在Xcode 8.1中使用Swift 3。爲什麼我通過KVC獲得價值,但是在使用領域時不能使用屬性?
我的代碼看起來像這個 -
do {
let realm = try Realm()
let human = Human()
human.name = "Nikhil"
human.legs = 2
try realm.write {
realm.add(human)
}
let humans = realm.objects(Human.self)
for h in humans {
print("\(h.name)") //Here is breakpoint
}
} catch {
//
}
然後我做
(lldb) po h.name
""
(lldb) po h.value(forKey: "name")!
Nikhil
爲什麼性能沒有返回值,但我可以通過value(forKey:
檢索值?
LLDB應該能夠直接在Realm模型上「po」屬性;至少它對Xcode 8.2和我使用CocoaPods安裝的Realm都有效。你可以嘗試清除你的派生數據並清理你的構建文件夾(選項鍵+產品菜單,然後「清潔生成文件夾...」)?也許有某種緩存的數據會導致調試器無法正常工作。 – AustinZ
這可能是因爲模型的屬性沒有用'dynamic'聲明。沒有'dynamic'屬性,Swift屬性訪問將是靜態分派。由於Realm懶洋洋地加載所有的值,它需要動態調度。請參閱我們的模型定義備忘單https://realm.io/docs/swift/latest/#cheatsheet –
@kishikawakatsumi你是對的。謝謝 :) –