IOS仅在应用的特定部分中使用核心数据

时间:2015-06-16 23:12:25

标签: ios api core-data

我是Core Data的新手,并尝试在与JSON后端通信的应用中使用它来保留对象以供离线支持。

我正在为我的模型使用NSObjects,现在使用NSManagedObjects。

我只需要将这些服务器对象保存在应用程序的几个部分中,而在其他部分中,继续使用以前的行为,而不是持久性:

Fetch from server -> Parse JSON response -> Create Objects without persistence to Core Data -> Display in UI

为此我使用了像这样的初始化器

- (id)initObjectWithJSON:(NSDictionary *)JSONDictionary
{
  self = [super init];
  if (!self) {
    return nil;
  }
  self.property1 = JSONDictionary[@"property1"];
  self.property2 = JSONDictionary[@"property2"]
  ...

}

我现在是否必须使用初始化器 initWithEntity:insertIntoManagedObjectContext:,因此即使我不想将对象持久保存到核心数据,也会创建一个新的上下文?

是否有另一种方法来分离"需要持久性的对象和不需要持久性的对象继续使用上面的旧方法?

1 个答案:

答案 0 :(得分:0)

在没有上下文的情况下初始化它:

NSEntityDescription *entity = [NSEntityDescription entityForName:@"MyEntity" inManagedObjectContext:myMOC];
NSManagedObject *unassociatedObject = [[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];

来源:How to Deal with Temporary NSManagedObject instances?