創建一個計算的屬性我的影片迷上了一個Storyboard GUI(Xcode中9和SWIFT 4)核心數據模型現在我想添加這是由兩部分衍生的特性。我有一個名爲Workout的實體,它的兩個屬性「rpe」和「seconds」被組合起來創建一個新屬性「rpeTSS」。我在我的核心數據模型中聲明瞭「repTSS」作爲屬性。我已將其設置爲瞬態。在覈心數據
我已經使用編輯菜單下的「讓子類NSManagedObject ...」選項嘗試,但,這似乎產生具有錯誤的文件。我嘗試了生成的Workout類的子類,但無法弄清楚如何將它綁定到GUI中。
我再發的擴展,鍛鍊:
extension Workout{
public override func value(forKey key: String) -> Any? {
if key == "rpeTSS"{
return (100/49)*rpe*rpe*Double(seconds)/3600
}else{return super.value(forKey: key)}
}
}
我會說實話,這並不「感覺」的權利。無論如何它(種)的作品。我現在可以獲得rpeTSS的正確價值,它顯示在我的GUI中。但是,如果我對rpe和/或秒進行更改,GUI不會更新。
我猜上面的方法有點破解,從而繞過了各種消息,使GUI更新。
什麼是核心數據中添加派生屬性的正確方法是什麼?我試圖用這種方式來實現這一點,這意味着如果我添加任何東西到我的數據模型中,我不必重寫派生屬性的代碼。
您可以創建實體類的對象並在其中設置屬性?然後,無論何時您更改rpe或秒,都會更新rpeTSS屬性。 – CodeNinja
不確定你的意思。實體類是在XCode中自動生成的。我嘗試了繼承它,但遇到了兩個問題 - 1.如何使ManagedObject成爲我的子類的一個實例並綁定到GUI中的子類;和2.我不斷收到錯誤,我的計算屬性不符合關鍵值。 –