繁体   English   中英

在核心数据中保存一对多关系时出现问题

[英]Problems saving a to-many relationship in Core Data

我一直在尝试将Core Data实施到我的应用程序中,最近一次尝试设置一对多关系。 我在下面设置关系

NSMutableSet *todoObjects = [[NSMutableSet alloc] init];
for (int i = 0; i < [allTodolistsData count]; i++) {
    NSDictionary *dictionary = [allTodolistsData objectAtIndex:i];
    TodolistObject *tempTodolist = [[TodolistObject alloc] initWithDict:dictionary];
    [todoObjects addObject:[Todolists newTodolist:tempTodolist withContext:appDelegate.context]];
    [tempTodolist release];
}

[project setTodolists:todoObjects];

项目变量是NSManagedObject ,并且setTodolists:方法是自动生成的,用于设置项目的待办事项列表。 由于该项目与待办事项列表具有一对多关系,因此我传入了NSMutableSet。 但是,执行此操作时,出现以下错误:

-[__ NSArrayM isEqualToSet:]:无法识别的选择器已发送到实例0xa325d60

我似乎找不到任何遇到此问题的人。 有任何想法吗?

您必须从NSManagedObject取回该关系的可变集,然后向其中添加新对象:

NSMutableSet *todoObjects = (NSMutableSet*)[project mutableSetValueForKey:@"todoLists"];

// Switch your for loop to use fast-enumaration
for (NSDictionary *dictionary in allTodolistsData) {
    TodolistObject *tempTodolist = [[TodolistObject alloc] initWithDict:dictionary];
    [todoObjects addObject:[Todolists newTodolist:tempTodolist withContext:appDelegate.context]];
    [tempTodolist release];
}

// Save project in the same context where you created the object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM