我在其中一个应用程序中运行数据模型,其中事件定义了“eventType”关系。这使我可以通过更改其“eventType”关系对象来修改多个事件的外观。iPhone核心数据可以缓存NSManagedObjects?
我遇到的问题是,在插入事件之前,我检查下面的代码是否存在此对象的typeRelationship。这需要一些时间,如果我需要插入大量的对象。
我可以缓存,读取请求(例如在NSMutableDictionary
)的结果,检查词典(本地内存),看看是否有给定EventIDEnum
的NSManagedObject
?我可以让缓存永久保存吗?或者底层对象会在一段时间后变得“过时”吗?
-(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];
}
}
}
谢谢你看看我的问题!