Ios 核心数据安装
我正在使用核心数据在我的应用程序中保存来自web服务的数据。在第一次运行时,应用程序创建核心数据实例和属性,并保存所有数据。我的问题是,当应用程序第二次或多次运行时,核心数据是否会创建其实例和属性并一次或一次又一次地保存所有数据?如果我的问题不相关,我很抱歉Ios 核心数据安装,ios,objective-c,core-data,Ios,Objective C,Core Data,我正在使用核心数据在我的应用程序中保存来自web服务的数据。在第一次运行时,应用程序创建核心数据实例和属性,并保存所有数据。我的问题是,当应用程序第二次或多次运行时,核心数据是否会创建其实例和属性并一次或一次又一次地保存所有数据?如果我的问题不相关,我很抱歉 谢谢如果每次运行应用程序时都调用用于将数据存储到coredata的Webservice+代码,core data将一次又一次地存储对象 你可以用两种方法来解决这个问题 如果来自服务器的数据保持不变,则可以设置标志并检查coredata插入是
谢谢如果每次运行应用程序时都调用用于将数据存储到coredata的Webservice+代码,core data将一次又一次地存储对象 你可以用两种方法来解决这个问题
如果你想确保数据是唯一的,你应该确保数据对象应该有一个唯一的键。 例如:
@interface Person : NSManagedObject
@property (nonatomic, retain) NSNumber * pid;
@property (nonatomic, retain) NSString * name;
@end
Person.pid的属性应该是唯一的。这意味着你最多只能得到一个人指定的pid
因此,在插入新对象之前,应使用NSFetchRequest(NSPreditate)查询数据库,如下所示:
NSNumber *aimPid;// the person's pid
NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"pid == %@", aimPid]];
如果此人存在,则只需更新并保存即可
如果此人不存在,则插入一个新的联系人并保存
更多信息:可能发生数据重复。你试过输出数据吗?我没有遇到任何关于这个问题的问题,我只是问,每当应用程序运行时,它会从一开始就创建核心数据吗?或者只是附加数据?我的数据一直在变化,所以这意味着每当应用程序运行时,它都会从开始创建核心数据,然后再次插入数据?是的,如果您不更新记录并每次插入它们,coredata会一次又一次地将相同的记录添加到表中