如何自动创建一个实体,它与我正在创建的实体具有一对一的非可选关系?
Posted
技术标签:
【中文标题】如何自动创建一个实体,它与我正在创建的实体具有一对一的非可选关系?【英文标题】:How can I create an Entity automatically, which has a one-to-one-not-optional-relationship to the Entity I'm creating? 【发布时间】:2011-01-10 20:01:06 【问题描述】:如何自动创建一个实体,它与我正在创建的实体具有一对一的非可选关系:
NSManagedObject *managedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
我找不到答案。我的解决方法是将关系设置为“可选”。有没有更好的方法来做到这一点?
【问题讨论】:
newEntityDescription
是错误的。您正在创建 NSMananagedObject
,而不是 NSEntityDescription
。
【参考方案1】:
您在创建新实例后设置属性。验证规则(例如关系是否可选等)仅在保存时强制执行,尽管您可以使用某些方法更早地对其进行测试。这意味着您可以创建对象、设置属性和关系,然后保存。所以在这种情况下,你可能想要类似的东西
NSManagedObject *newObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[newObject setValue:entity forKey:@"relationship"];
// now the object should be valid when you call save
【讨论】:
以上是关于如何自动创建一个实体,它与我正在创建的实体具有一对一的非可选关系?的主要内容,如果未能解决你的问题,请参考以下文章
NSFetchRequest 具有一对一关系属性 == YES 谓词错误地获取每个实体
iPhone Core Data - 访问具有多种关系的深层属性