@synchronized(self){
//这里面的self是TTModelObject的子类ttcourse
//第一步建立起针对数据库里面存储的某一个对象的请求,要用到entityName这个方法
NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName:[self entityName]];
//接下来就是根据对象对象的predicate属性精准的定位到正确的对象,
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"courseID = %@", courseID];
NSError* error = nil;
//context分为两种,backgroundManagedObjectContext,managedObjectContext
NSArray* result = [context executeFetchRequest:fetchRequest error:&error];
if (error) {
ELog(@"error: %@", error.localizedDescription);
}
if (result.lastObject) {
return result.lastObject;
} else {
TTCourse* course = [self insertNewObjectIntoContext:context];
course.courseID = courseID;
return course;
}
}
总结下来,coredata数据库存储的是一个个对象,每个对象之间的区分靠 fetchRequest.predicate这个属性,对应的找到你想要的对象