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];