使用核心数据和魔法logging创build一个实例variables

目前在一个给定的类中给定的方法,我可以创build一个由Core Data和Magical Recordpipe理的自定义variables的一个实例,下面的行

AViewController.m

List *list = [List MR_createInContext:_managedObjectContext]; 

然后我可以像这样设置列表的属性:

 list.name = @"FooBar Name"; 

我的问题 :在AViewController.h我可以做到以下几点 –

 @interface AViewController : UIViewController { /* Define Local List Var for AViewController class */ List *list; } 

然后在.m

 viewdidload { list = [List MR_createInContext:_managedObjectContext]; } someCustomMethod { list.name = @"FooBar Name"; [_managedObjectContext MR_save]; } 

你的代码应该工作。 但是,如果你正试图从input元素创build新的对象(也许在button点击),只有通过运行应用程序一次又一次创build新的对象。 我的意思是,如果你的someCustomMethod被一次又一次地调用,同一个对象将被重写的值。 (如果这是你想要的,那就好了)

但是如果你想创build新的对象,你应该在对象内部重新初始化它。 即你应该使用下面的代码:

 viewdidload { list = [List MR_createInContext:_managedObjectContext]; } someCustomMethod { list.name = @"FooBar Name"; [_managedObjectContext MR_save]; list = [List MR_createInContext:_managedObjectContext]; //add this line } 

因此,这种方式旧的对象将被保存,每次调用一个自定义方法时都会创build一个新的对象。

这种模式是非常常见的,你发布的代码应该工作。

我不完全知道MR如何工作,但是在Cord Data中,如果要放弃该对象,则必须从上下文中删除该对象,否则将在下次保存时保存该对象。