我正在尝试更新当前的CoreData对象,但是当我使用我的write方法时,它只是将另一个对象添加到数据库中,所以当我尝试读取对象时,我会根据对象的使用时间长短地返回几十个对象。
这是我的代码
#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 我出错了但是我不确定如何编写此方法以便每次都更新同一个对象?
答案 0 :(得分:1)
SeriesSearchObj *searchObj = [NSEntityDescription insertNewObjectForEntityForName:@"SeriesSearchObj" inManagedObjectContext:context];
总会给你一个新对象。 使用NSFetch获取现有对象,然后更新它。