我有一个核心数据模型,有两个表(膳食和成分)。我想用多种食材来节省一顿饭。我有下面的代码循环通过一系列成分。我正试图保存它,但我无法重新声明下面的“实体”。我该怎么做?我试过发布它,但那没用!谢谢你的帮助。
for (x=0;x<ingredients;x++) {
NSEntityDescription *entity = [NSEntityDescription insertNewObjectForEntityForName:@"Ingredient" inManagedObjectContext:managedObjectContext];
entity.name = @"test";
}
(这种方法确实可以将一条记录保存在循环之外......所以这不是问题)
答案 0 :(得分:3)
您不会将实体插入上下文中。您将托管对象插入上下文中。
你应该有类似的东西:
NSManagedObject *myMO;
for (x=0;x<ingredients;x++) {
myMo = [NSEntityDescription insertNewObjectForEntityForName:@"Ingredient" inManagedObjectContext:managedObjectContext];
[myMO setValue:@"test" forKey:@"name"];
}
当然,如果有一个NSManagedObject子类,你可以直接设置'name'属性。
重要的是不要将实体与NSManagedObject或其子类的实例混淆。实体只是对象如何在托管对象上下文的对象图内相互关联的描述。上下文使用实体描述来确定所有实际实例如何适合彼此以及如何获取和存储它们。