2011-09-20 71 views
0

我的iOS應用程序使用CoreData存儲許多東西,NSUserDefaults存儲其他東西,CoreData將是矯枉過正。排序和在CoreData列表設置默認

我要簡化這一如此忍受我(注:這個例子的目的,讓我們用信用卡)。當我的應用程序加載它時,會顯示保存的信用卡列表。現在,在添加每個卡被分配一個編號1-10(姑且稱之爲cardNum),隨着該卡爲它的生命停留。

所以我們添加一個卡,併爲它分配#1。我們添加另一張牌並將其分配#2。另一個......#3。我們可以設置一個默認卡片,通過點擊它在發佈時突出顯示。它的作用是保存cardNum作爲cDefaultNSUserDefaults跟蹤它(有效設置卡X爲默認卡)。

(表視圖的原油圖)

//cDefault is 2 
------------ 
1 - Card1 
------------ 
2 - Card2 (cDefault) 
------------ 
3 - Card3 
------------ 
4 - Card4 
------------ 

所以我們可以說我們分配cDefault比2再下一週,我們刪除該卡。刪除時,我需要自動分配其中一張卡作爲默認卡。

(表視圖後卡2被刪除的原油圖紙 - 請注意cDefault如何仍設置...)

//cDefault is still 2 
------------ 
1 - Card1 
------------ 
3 - Card3 
------------ 
4 - Card4 
------------ 

所以我的問題是如何在缺失,另設卡cDefault(即如果它是一個數組,我可能會設置新的默認無論何種卡是indexPath.row==0cDefault價值,但我不知道如果我能做到,使用CoreData

,因爲你需要請儘量多問一些問題。我試圖盡我所能解釋這一點,但如果我對任何事情都不清楚,請問我。

非常感謝你提前。 詹姆斯

回答

1

首先,我不明白爲什麼你有一定的信息從管理對象分開......我會定義一個BOOL財產像卡類「突出」,並處理所有你的東西在覈心數據...它聽起來更OOP給我:P 其次,之前我沒有嘗試,但你可以訂閱NSNotificationCenter,聽NSManagedObjectContextDidSaveNotification,該通知包含USERINFO字典,一個名爲的鑰匙NSDeletedObjectsKey應該包含一組已刪除的對象(卡),在您的選擇器中,您可以編寫一段邏輯來更新商店中的對象(即,將「」突出顯示爲「屬性設置爲YES爲第一張卡例如)......這種方法很酷,因爲它可以放在代碼中的任何位置,無論如何,處理更新最簡單明顯的地方就是刪除卡的地方。

+0

好了,還有其他的原因是什麼cDefault被分開存放。 – Baub

+0

感謝您的答案,但!我不知道這個通知。 – Baub