2014-12-18 88 views
0

如何創建自定義託管對象,但不保存,只是將其保存在內存中,當應用程序停止時,臨時託管對象也可以釋放。但同時我需要保存其他託管對象。如何在不存儲上下文的情況下創建自定義的NSManagedObject?

+0

您可以按照http://www.cocoanetics.com/2012/07/multi-context-coredata/中所述的模式創建臨時工作程序上下文,您可以使用它們創建不需要保存的一次性管理對象。對於要保存的對象,請確保保存用於創建它們的工作環境。如果你想要這些臨時管理對象之間的交互,這可能會有問題。 –

回答

1

取決於您的應用程序的工作方式,有幾種可能性。

一個是隻創建該對象,而不是插入它。就這麼簡單。爲上下文傳遞一個零值。

NSManagedObjectModel *managedObjectModel = 
    [[self.managedObjectContext persistentStoreCoordinator] managedObjectModel]; 
NSEntityDescription *entity = [[managedObjectModel entitiesByName] objectForKey:@"EntityName"]; 
NSManagedObject *myObject = [[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:nil]; 

如果您稍後要插入對象,請使用[NSManagedObjectContext insertObject:]

另一種方法是創建內存中的Core Data存儲。創建第二個持久性存儲,但用NSInMemoryStoreType替換NSSQLiteStoreType。然後照常創建和使用對象。當應用程序退出時,內存存儲將隨其所有對象一起消失。

相關問題