我在我的一个应用程序中运行一个数据模型,其中一个事件定义了一个“eventType”关系。这允许我通过更改它们的“eventType”关系对象来修改多个事件的外观。
我遇到的问题是,在插入事件之前,我使用下面的代码检查该对象的 typeRelationship 是否存在。如果我需要插入大量对象,这需要一些时间。
我可以缓存此获取请求的结果(例如 in NSMutableDictionary
)并检查该字典(本地内存)以查看是否有NSManagedObject
给定的EventIDEnum
?我可以让缓存永远保持活动状态,还是底层对象会在一段时间后“过时”?
-(Event*)insertAndReturnNewObjectWithTypeID:(EventIDEnum)eventTypeID date:(NSDate*)date
{
NSFetchRequest *eventTypesArray = [NSFetchRequest fetchRequestWithEntityName:@"EventType"];
eventTypesArray.predicate = [NSPredicate predicateWithFormat:@"SELF.id == %d", eventTypeID];
NSArray *eventTypes = [[DataManager sharedInstance].managedObjectContext executeFetchRequest:eventTypesArray error:nil];
if(eventTypes.count==0)
{
DLog(@"ERROR inserting event with type: %i NOT FOUND",(int)eventTypeID);
return nil;
}
else {
if(eventTypes.count !=1)
{
DLog(@"ERROR found %i events with type %i",eventTypes.count,(int)eventTypeID);
}
EventType* eventType = [eventTypes lastObject];
if(date)
{
// DLog(@"Returning object");
return [self insertAndReturnNewObjectWithEventType:eventType date:date];
}else {
// DLog(@"Returning object");
return [self insertAndReturnNewObjectWithEventType:eventType];
}
}
}
谢谢你看我的问题!