2010-11-04 30 views
0

所以我在現有的iPhone應用程序中使用核心數據,並且設置了兩個實體:人員和項目。我的應用程序導航(當前)的根視圖顯示了一個人員列表,並從那裏向下鑽取到項目。總之,層次結構如下所示:如何在iOS上的Core Data中創建新創建的關係?

人 - >項目

我要在層次上面加人一個新的實體,稱爲表:

列表 - >人物 - >項目

此外,我想要在啓動時爲用戶創建用戶的第一個列表,併爲用戶已添加的用戶分配該列表。

我熟悉的核心數據的輕量級遷移&版本控制功能,所以我想我知道如何添加新的實體和關係,但我不知道如何:

  1. 創建列表在應用開始時記錄,如果他們從未有過列表功能

  2. 將所有現有人員記錄設置爲屬於該新列表。

一個快速和骯髒的方法是添加一些代碼執行(1)檢查遷移,看看是否有任何列出我的應用程序委託的applicationDidFinishLaunching方法,(2)如果沒有,創建默認(3)從我的數據存儲中獲取所有現有的人員,(4)將每個人員的列表屬性設置爲新創建的默認列表,最後(5)保存這些更改。

我的問題是:有沒有更快或更簡單的方法來做到這一切?

回答

1

這幾乎是你想要做的。使用NSFetchRequest來查看是否存在任何Lists。如果沒有,請創建一個。然後做另一個請求來獲得所有的Person。在這裏,而不是分配每個Personlist財產,我會創建一個包含所有Person秒的NSSet並分配到Listpeople財產。你確實創建了一個逆向屬性,對吧?

這實際上是一個非常輕量級的操作,全部收費,所以我不會擔心太多的性能。除非您擁有數百或數千個對象,否則您的用戶可能甚至不會注意到。

+0

好主意,我會嘗試這種方式。謝謝! – 2010-11-04 21:14:01