2011-09-08 59 views
0

假設在CoreData模型中存在名爲PERSON的實體,並且使用NSPanel(顯示爲工作表)來請求創建此實體的實例所需的信息。 NSPanel還具有保存和取消按鈕。用於實現核心數據實體的插入/編輯的最佳方法

什麼是最好的實施方式?

我目前的做法是創建NSPanel並將網點添加到NSTextField對應於PERSON Entity的FirstName和LastName屬性。

對於保存按鈕,我創建了一個保存操作,用於「讀取」用戶通過出口輸入的數據,並手動創建一個包含所提供信息的PERSON實體。

對於取消按鈕,我創建了一個取消操作,只關閉NSPanel。

即使整個事情按預期工作,我覺得這種方法很混亂。由於需要一種新方法來讀取選定實體中的數據並將其傳遞給NSTextField,並且將所需的邏輯添加到「保存操作」以說明更新操作,情況會更加嚴重。

我想知道在這種情況下是否可以使用完整的CoreData/Binding方法?

完整的CoreData/Binding方法的主要問題,至少對我在這些框架上的短期經驗來說,事實是一旦用戶開始在新實例上輸入信息,已經到了晚期取消操作。對?

回答

0

您描述的設置絕不是混亂的。相反,它提供了充足的機會來增強UI體驗。

你的最後一點,或「主要問題」,根本不是問題。您可以放置​​NSPanel並讓用戶輸入新值,如果按下了,則取消。只有當按下按鈕時,纔會將新對象插入核心數據managedObjectContext並保存。

同樣,編輯時只需簡單地檢索數據並填充字段。您保留對該記錄的參考,如果保存被按下,則修改屬性並保存managedObjectContext。如果操作取消,則只需放棄參考。

+0

謝謝你的評論,我會繼續這樣做。 – Mane

+0

請考慮點擊複選框或投票。 – Mundi