Ios 更新CoreData对象,而不是插入新对象
我正在尝试更新当前的CoreData对象,但是当我使用我的write方法时,它只是将另一个对象添加到数据库中,因此当我尝试读取对象时,我会根据它的使用时间返回几十个对象 这是我的密码Ios 更新CoreData对象,而不是插入新对象,ios,objective-c,core-data,Ios,Objective C,Core Data,我正在尝试更新当前的CoreData对象,但是当我使用我的write方法时,它只是将另一个对象添加到数据库中,因此当我尝试读取对象时,我会根据它的使用时间返回几十个对象 这是我的密码 #pragma mark -- Write - (void)writeSeriesSearchObj:(NSMutableDictionary *)SearchDic Name:(NSString *)name { // WRITE TO CORE DATA NSManagedObjectConte
#pragma mark -- Write
- (void)writeSeriesSearchObj:(NSMutableDictionary *)SearchDic Name:(NSString *)name
{
// WRITE TO CORE DATA
NSManagedObjectContext *context = [self managedObjectContext];
SeriesSearchObj *searchObj = [NSEntityDescription insertNewObjectForEntityForName:@"SeriesSearchObj" inManagedObjectContext:context];
if ([name isEqualToString:@"Code"]) {
searchObj.code = [SearchDic objectForKey:@"Code"];
} else if ([name isEqualToString:@"Name"]) {
searchObj.name = [SearchDic objectForKey:@"Name"];
} else if ([name isEqualToString:@"Model"]) {
searchObj.modelID = [SearchDic objectForKey:@"ModelID"];
}
NSError *error = nil;
[self.managedObjectContext save:&error];
// test
NSMutableArray *temptestA = [self readSearchObj];
NSLog(@"%@", temptestA);
}
我怀疑我在使用insertNewObjectForEntityForName时出错了,但是我不知道如何编写此方法,以便每次都更新同一对象
SeriesSearchObj *searchObj = [NSEntityDescription insertNewObjectForEntityForName:@"SeriesSearchObj" inManagedObjectContext:context];
将始终返回一个新对象。
使用NSFetch获取现有对象,然后更新它 如果我第一次使用fetch但是还没有对象,你读过或者会发生什么吗?我刚刚创建了一个if语句,如果NSFetch没有带回任何东西(第一次正常),那么我会插入newobjectforentityforname等等。。然后在那之后我总是用fetch。