一个managedObjectContext的iOS多个实体
在我的iOS应用程序中有一个包含两个实体的核心数据模型 实体:单位/属性:单位名称-NSString ->>与一个managedObjectContext的iOS多个实体,ios,core-data,entity,managedobjectcontext,Ios,Core Data,Entity,Managedobjectcontext,在我的iOS应用程序中有一个包含两个实体的核心数据模型 实体:单位/属性:单位名称-NSString ->>与练习的关系(一对多) 实体:练习/属性:练习名称-NSString。 因此一个单元可以有许多练习 在我的表格视图中,列出了所有可用的练习。 (因此,第一次,我为练习实体发出了一个获取请求,managedObjectContext指向该实体 如果我想用练习保存“新建”装置,则保存功能不起作用。 没有任何错误,但是单元表仍然为空 以下是保存功能的代码: Units *newUnit = [
练习的关系
(一对多
)
实体:练习/属性:练习名称-NSString。
因此一个单元
可以有许多练习
在我的表格视图中,列出了所有可用的练习。
(因此,第一次,我为练习
实体发出了一个获取请求,managedObjectContext
指向该实体
如果我想用练习保存“新建”
装置
,则保存功能不起作用。
没有任何错误,但是单元
表仍然为空
以下是保存功能的代码:
Units *newUnit = [NSEntityDescription insertNewObjectForEntityForName:@"Units" inManagedObjectContext:[self.coreDataHelper managedObjectContext]];
newUnit.unit_name = unitTextField.text;//Attribute
newUnit.exercises = exerciseSet;//Relationship (NSSet)
NSError *error = nil;
if (![[self.coreDataHelper managedObjectContext]save:&error]) {
NSLog(@"There was an error! %@", error);
}
else {
NSLog(@"Success!");
}
似乎managedObjectContext
仍然指向练习
实体。(因为它是第一次使用此实体初始化的)coreDataHelper
具有NSPersistentStoreCoordinator
、NSManagedObjectContext
、NSManagedObjectModel
以及一些读写和删除方法
感谢您的帮助!为了验证所有东西都按应有的方式连接,请添加
NSAssert(self.coreDataHelper, @"null coreDataHelper");
NSAssert(self.coreDataHelper.managedObjectContext, @"null MOC");
NSLog(@"available entities: %@",
self.coreDataHelper.managedObjectContext.persistentStoreCoordinator.managedObjectModel.entitiesByName);
如果一切设置正确,您应该将“单位”
视为您的实体之一
然后在插入newUnit后,验证它是否工作:
NSAssert(newUnit,@“newUnit未插入”)
顺便说一句,这听起来像是一个逻辑错误:每次保存时都要创建一个新的Units实例?您确定不想改用“查找”或“创建”模式吗?您是否怀疑输入错误,或者您的代码是否有“Units”在insertNewObjectForEntityName方法中,当您说您的实体是Unit时?将保存包含上下文的任何实体。请确保self.coreDataHelper不为null,并且您正在正确地将其传递给当前控制器。