我在其中一個應用程序中運行數據模型,其中事件定義了「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];
}
}
}
謝謝你看看我的問題!