0
如何創建自定義託管對象,但不保存,只是將其保存在內存中,當應用程序停止時,臨時託管對象也可以釋放。但同時我需要保存其他託管對象。如何在不存儲上下文的情況下創建自定義的NSManagedObject?
如何創建自定義託管對象,但不保存,只是將其保存在內存中,當應用程序停止時,臨時託管對象也可以釋放。但同時我需要保存其他託管對象。如何在不存儲上下文的情況下創建自定義的NSManagedObject?
取決於您的應用程序的工作方式,有幾種可能性。
一個是隻創建該對象,而不是插入它。就這麼簡單。爲上下文傳遞一個零值。
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
。然後照常創建和使用對象。當應用程序退出時,內存存儲將隨其所有對象一起消失。
您可以按照http://www.cocoanetics.com/2012/07/multi-context-coredata/中所述的模式創建臨時工作程序上下文,您可以使用它們創建不需要保存的一次性管理對象。對於要保存的對象,請確保保存用於創建它們的工作環境。如果你想要這些臨時管理對象之間的交互,這可能會有問題。 –