我想使用实体对象但不存储它们......我读到我可以像这样创建它们:
myElement = (Element *)[NSEntityDescription insertNewObjectForEntityForName:@"Element" inManagedObjectContext:managedObjectContext];
然后删除它们:
[managedObjectContext deleteObject:myElement];
然后我可以使用我的元素:
myElement.property1 = @"Hello";
虽然我认为这可能不是最佳的做法,但效果还不错......
然后我尝试在我的UITableView中使用它......问题是初始化后对象被释放了。移动它时我的桌子变空了!
由于
编辑:我也尝试复制元素([myElement copy]),但是我收到错误...
答案 0 :(得分:0)
Element *myElement = [[Element alloc] init];
然后用它做任何你想做的事情,大概你会把它添加到一个数组中,所以它会说明你的UITableView。
答案 1 :(得分:0)
也许你可以尝试在你的项目中拥有两个商店协调员。一个有持久性,另一个没有持久性。
答案 2 :(得分:0)
考虑使用临时对象---由托管对象上下文像任何其他对象一样处理,但在保存操作时不写入磁盘。它们通常用于模拟仅运行时对象,因为我怀疑你正在尝试这样做。
以下是关于它们的一些信息: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CoreData/Articles/cdNSAttributes.html
答案 3 :(得分:0)
从an answer to a similar question中提取的一个选项是使用nil上下文初始化NSManagedObject:
Element *myElement = [[Element alloc] initWithEntity:entity
insertIntoManagedObjectContext:nil];
或
Element *myElement = [NSEntityDescription insertNewObjectForEntityForName:@"Element"
inManagedObjectContext:nil];
答案 4 :(得分:0)
我所做的是使用内存商店。您可以按照此处的说明执行此操作:http://commandshift.co.uk/blog/2013/06/06/multiple-persistent-stores-in-core-data/