我是 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: 从而创建一个新的上下文,即使我不想将对象保留到核心数据?
有没有另一种方法可以“分离”需要持久化的对象和不需要持久化的对象,继续使用上面的旧方法?
在没有上下文的情况下初始化它:
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MyEntity" inManagedObjectContext:myMOC];
NSManagedObject *unassociatedObject = [[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];