我的iOS应用程序使用CoreData
来存储很多内容,并使用NSUserDefaults
来存储CoreData
过度杀戮的其他内容。
我要简化这个,所以请耐心等待(注意:为了这个例子,让我们使用信用卡)。当我的应用程序加载时,它会显示已保存的信用卡列表。现在,当添加每张卡时,会为其分配一个数字1-10(让我们称之为cardNum
),该数字在卡的生命周期内保留。
所以我们添加一张卡并分配#1。我们添加另一张卡并将其指定为#2。另一个......#3。我们可以设置一个默认卡,通过点击它将在启动时突出显示。它的作用是将cardNum
保存为cDefault
到NSUserDefaults
以跟踪它(有效地将卡片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
)
请根据需要提出尽可能多的问题。我尽力解释这个问题,但如果我不清楚什么,请问我。
提前非常感谢你。 詹姆斯
答案 0 :(得分:1)
首先,我不明白为什么你必须从托管对象中分离出某些信息...我会在“强> BOOL 属性中定义”突出显示“卡类和处理核心数据中的所有内容......这对我来说听起来更多OOP:P 其次,我之前没有尝试过,但您可以订阅 NSNotificationCenter 并收听 NSManagedObjectContextDidSaveNotification ,该通知包含 userInfo 字典一个名为 NSDeletedObjectsKey 的键应该包含一组已删除的对象(卡片),在您的选择器中,您可以编写一段逻辑来更新商店中的对象(即设置“突出显示“属性为第一张卡的 YES ”...这种方法很酷,因为可以放在代码中的任何位置,无论如何,处理更新的最简单明了的地方是你要删除卡的地方。