Cocoa touch iPhone-在核心数据中创建非持久性实体

Cocoa touch iPhone-在核心数据中创建非持久性实体,cocoa-touch,cocoa,core-data,Cocoa Touch,Cocoa,Core Data,我想使用实体对象,但不存储它们。。。我读到我可以这样创造它们: myElement = (Element *)[NSEntityDescription insertNewObjectForEntityForName:@"Element" inManagedObjectContext:managedObjectContext]; 然后马上移除它们: [managedObjectContext deleteObject:myElement]; 然后我可以使用我的元素: myElement.pro

我想使用实体对象,但不存储它们。。。我读到我可以这样创造它们:

myElement = (Element *)[NSEntityDescription insertNewObjectForEntityForName:@"Element" inManagedObjectContext:managedObjectContext];
然后马上移除它们:

[managedObjectContext deleteObject:myElement];
然后我可以使用我的元素:

myElement.property1 = @"Hello";
尽管我认为这可能不是最理想的方法,但它仍然非常有效

然后我尝试在我的UITableView中使用它。。。问题是对象在初始化后被释放。当我移动桌子时,它就空了

谢谢

编辑:我也尝试复制元素([myElement copy]),但我遇到了一个错误…

您就不能这样做吗

Element *myElement = [[Element alloc] init];

然后,您可以随心所欲地使用它,大概您会将它添加到一个数组中,这样它就可以为您的UITableView显示内容。

也许您可以尝试在项目中使用两个存储协调员。一个有持久性,另一个没有持久性。

请考虑使用临时对象,这些对象与任何其他对象一样由托管对象上下文处理,但在保存操作时不会写入磁盘。它们通常用于仅对运行时对象建模,我猜您正试图这样做

以下是关于它们的一些信息:

从中提取的一个选项是使用nil上下文初始化NSManagedObject:

Element *myElement = [[Element alloc] initWithEntity:entity
                      insertIntoManagedObjectContext:nil];


我所做的是使用内存存储。您可以按此处所述操作:

我已经试过了。。。我得到一个错误:调用NSManagedObject类“Element”上指定的初始值设定项失败-我真的不明白它为什么不实现NSObject初始值设定项!是的,但问题是有些物体是暂时的,有些不是。。。如何处理这些异常?想要临时对象或实体不同于想要临时属性。问题是我需要在临时对象上复制一些持久对象的一部分!当托管对象上下文不相同时,我得到一个错误!所以在本例中,我想我应该使用字典来存储数据,以便在对象应该被持久化的情况下使用字典创建托管对象。但是如果不了解您的项目架构,就很难帮助您。你好,好的。。。我创建了另一个可初始化的类!它不是很干净,但很管用。感谢您的帮助。后一个给了我一个异常:Uncaught exception:+entityForName:nil不是搜索实体名称的合法NSManagedObjectContext参数
Element *myElement = [NSEntityDescription insertNewObjectForEntityForName:@"Element"
                                                   inManagedObjectContext:nil];