我有一个看起来像这样的实体:
Entityname = Country
属性为“city”和“person”。
Country *country = [NSEntityDescription insertNewObjectForEntityForName:@"Country" inManagedObjectContext:context];
country.city = @"New York";
country.person = @"Doug";
country.person = @"Carry";
country.person = @"Arthur";
我想在城市中保存多个人。
我正在使用上面发布的代码,但只保存了最后一个人。
如何在 CoreData 中保存多一个人?
希望你能帮助我。
答案 0 :(得分:2)
解决问题的方法是:
...
- (void)addPersonObject:(Person *)value;
- (void)removePersonObject:(Person *)value;
- (void)addPersons:(NSSet *)value;
- (void)removePersons:(NSSet *)value;
...
从这一点可以很明显地弄清楚如何添加多个对象:) 我知道这一切看起来似乎很难,但是一旦你了解到这一点,你将能够轻松高效地管理复杂的对象图。 我希望这些信息能让你走上正轨!
答案 1 :(得分:0)
您需要创建一个数组,其中包含您需要保存到核心数据模型的所有人员。
答案 2 :(得分:-1)
试试这段代码。希望这会对你有所帮助
yourArray = [[NSMutableArray alloc]initWIthObjects:@"Doug",@"Carry",@"Arthur"];
for(int i = 0; i < [yourArray count]; i++)
{
NSManagedObjectContext *context = [self managedObjectContext];
countryObject=[NSEntityDescription
insertNewObjectForEntityForName:@"Country"
inManagedObjectContext:context];
countryObject.city = @"New york";
countryObject.people = [NSString stringWithFormat:@"%@",[yourArray objectAtIndex:i]];
NSError *error;
if (![context save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
}
<强>更新强>
你解释说你不需要三个不同的实例,然后
这可以通过为City
和People
创建单独的实体来完成,然后将它们之间的关系设为to-many relationship.
这样您就可以实现这一目标。