在CoreData列表中排序和设置默认值

时间:2011-09-20 20:58:21

标签: objective-c ios xcode core-data

我的iOS应用程序使用CoreData来存储很多内容,并使用NSUserDefaults来存储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(即如果它是一个数组,我可能会将新的默认设置为任何卡的cDefault值{ {1}}但我不确定我是否可以使用indexPath.row==0

执行此操作

请根据需要提出尽可能多的问题。我尽力解释这个问题,但如果我不清楚什么,请问我。

提前非常感谢你。 詹姆斯

1 个答案:

答案 0 :(得分:1)

首先,我不明白为什么你必须从托管对象中分离出某些信息...我会在“强> BOOL 属性中定义”突出显示“卡类和处理核心数据中的所有内容......这对我来说听起来更多OOP:P 其次,我之前没有尝试过,但您可以订阅 NSNotificationCenter 并收听 NSManagedObjectContextDidSaveNotification ,该通知包含 userInfo 字典一个名为 NSDeletedObjectsKey 的键应该包含一组已删除的对象(卡片),在您的选择器中,您可以编写一段逻辑来更新商店中的对象(即设置“突出显示“属性为第一张卡的 YES ”...这种方法很酷,因为可以放在代码中的任何位置,无论如何,处理更新的最简单明了的地方是你要删除卡的地方。