我正在寻找最佳的解决方案来实现这一行为有一个单一的实体:最佳方式使用Magicalrecord
我有一个实体,称为客户,这将只对核心数据的单个条目,因为客户将只有一个。
实现此目的的最佳解决方案是什么?在创建之前是否每次检查实体是否存在?
非常感谢
我正在寻找最佳的解决方案来实现这一行为有一个单一的实体:最佳方式使用Magicalrecord
我有一个实体,称为客户,这将只对核心数据的单个条目,因为客户将只有一个。
实现此目的的最佳解决方案是什么?在创建之前是否每次检查实体是否存在?
非常感谢
如前所述,您可以使用单个对象[NSUserDefaults standardUserDefaults]。
但是,如果你喜欢使用CoreData,这样写:
Customer* customer = [Customer MR_findFirst];
if (customer != nil)
{
//do something with it
} else
{
[Customer MR_importFromObject:JSONToImport];
}
BDW:
MR_importFromObject方法自动检查是否存在实体,具有特定标识(ID键就用你的实体名称的属性加上“身份证”(在你的情况下,“customerID”)或名为“mappedKeyName”的密钥
如果具有此密钥的实体已经存在 - 魔法记录只是更新此实体。
所以,如果你指定该值在你的实体,只写:
[Customer MR_importFromObject:JSONToImport];
检查实体创建一个新的是一个好主意之前就存在。
您可以获取您的客户实体类型的所有实体并删除它们,然后再添加一个新的实体类型为另一种方法。
您也可以有一个简单的方法来获取当前客户或创建一个,然后更新其所有属性。
它的种类取决于你如何获得数据以及你想要发生的相关对象。
计数的实体实例的数量也可以是一个检查机制。 – Wain
如果只有一个实例,最好的解决方案通常是不把它放在核心数据中。它给你很少,并增加了你所看到的复杂性。将必要的信息保存在属性列表中,甚至以用户默认值保存。
这是我正在做的准确方法!谢谢! :) –