我在尋找CoreData和一般實體的幫助。爲了我的問題,可以說我有一個相冊數據庫。我簡單地有一個名爲專輯的實體,名稱,藝術家,年份,專輯封面等屬性。具有多個實體的CoreData編程
現在,讓我們說我想能夠爲這個專輯創建歌曲。我想我應該有一個單獨的實體的歌曲,並與它有一個一對多的關係。但是,我不確定我會如何做到這一點。
由於我有不同的專輯,其中包含不同的歌曲,我想從專輯B中的歌曲與專輯A分開。現在,我可以在歌曲數據庫中有一個專輯它屬於,但是最有效這樣做的方法。如果我有一個重複的相冊名稱會怎麼樣?我嘗試使用創建的時間和名稱創建專輯名稱的唯一「散列」,但有沒有更好的方法。
我還需要一個更好的方式來處理刪除相冊時的刪除。
如果不使用一對多關係,我可以創建兩個獨立的實體,即專輯和歌曲,它們不會鏈接在一起。但是,當我創建一個新相冊時,它會加載一個新的視圖控制器,並將「哈希」時間戳相冊名稱傳遞給視圖控制器。然後當我創建一首新歌曲時,它會在Songs實體中使用哈希時間標記的專輯名稱作爲一行。這樣,當我查看專輯中的哪些歌曲時,我只是設置NSPredicate以僅顯示包含哈希時間戳的查詢。但是,刪除是一個問題,因爲它們沒有關係。
- 我應該使用「一對多關係」嗎?
- 我應該如何處理確定歌曲是否屬於某個專輯?
- 如果他們是多個具有相同名稱的相冊,該怎麼辦?
- 我該如何處理刪除?
如果任何人都可以提供任何這些答案,代碼或教程...將不勝感激。
非常感謝您的回覆。如果我使用的是多對多關係,我將如何直接從我的相冊實體訪問歌曲。有沒有一種方法或方法來使用這種關係來獲取和設置歌曲實體中的數據。 – Sonny
關係是實體的財產 - 您可以像對待任何其他財產一樣對待它。您可以通過管理對象的NSSet來獲取/設置。本指南可能會幫助您:http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/CoreData/Articles/cdRelationships.html%23//apple_ref/doc/uid/TP40001857-CJBDBHCB – lxt