如何在初始化后将NSManagedObject与上下文关联起来?

时间:2011-04-05 04:05:26

标签: iphone objective-c core-data

例如,如果我有一个名为NSManagedObject的{​​{1}},并且我想稍后设置Items(而不是在初始化时),我该怎么做?

目前我正在这样做:

ManagedObjectContext

自动将其与Items *item = [NSEntityDescription insertNewObjectForEntityForName:@"Items" inManagedObjectContext:_context]; 相关联。

但如果我想这样做怎么办:

_context

我希望将该对象传递给另一个方法,然后将其与上下文关联并保存。

那么有没有办法只做一个简单的Items *item = [[Items alloc] init]; item.first = @"bla"; item.second = @"bla bla"; 或类似的东西?

2 个答案:

答案 0 :(得分:4)

这种方法非常有效......

Items *item = [[Item alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];
item.first = @"blah";
item.second = @"blah blah";

然后,您可以自由地将此对象传递到需要的位置,当您准备将其提交到托管对象上下文时,只需插入并保存即可。

[managedObjectContext insertObject:item];
NSError *error = nil;
[managedObjectContext save:&error];

答案 1 :(得分:1)

NSManagedObject子类的标准init方法是-initWithEntity:insertIntoManagedObjectContext:。如果您未提供上下文,请致电:

[myManagedObjectContext insertObject:item];

...这是init方法在内部执行的操作。你仍然需要像往常一样保存managedObjectContext。