Iphone 核心数据关系问题

Iphone 核心数据关系问题,iphone,objective-c,core-data,Iphone,Objective C,Core Data,我有一个非常简单的模型,有两个对象:名称和类别。一个名字可以是多个类别,这是单向关系。我尝试创建8个类别,每个类别有8个名称。示例代码: NSMutableArray *localArray = [NSMutableArray arrayWithObjects: [NSMutableDictionary dictionaryWithObjectsAndKeys:

我有一个非常简单的模型,有两个对象:名称和类别。一个名字可以是多个类别,这是单向关系。我尝试创建8个类别,每个类别有8个名称。示例代码:

        NSMutableArray *localArray = [NSMutableArray arrayWithObjects:
                                  [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"g1", @"Name",
                                   @"g1", @"Icon",
                                   [NSNumber numberWithBool:YES] , @"Male",
                                   nil],
                                  [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"g2", @"Name",
                                   @"g2", @"Icon",
                                   [NSNumber numberWithBool:YES] , @"Male",
                                   nil],
                                  [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"g3", @"Name",
                                   @"g3", @"Icon",
                                   [NSNumber numberWithBool:YES] , @"Male",
                                   nil],
                                  [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"g4", @"Name",
                                   @"g4", @"Icon",
                                   [NSNumber numberWithBool:YES] , @"Male",
                                   nil],
                                  [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"g5", @"Name",
                                   @"g5", @"Icon",
                                   [NSNumber numberWithBool:YES] , @"Male",
                                   nil],
                                  [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"g6", @"Name",
                                   @"g6", @"Icon",
                                   [NSNumber numberWithBool:YES] , @"Male",
                                   nil],
                                  [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"g7", @"Name",
                                   @"g7", @"Icon",
                                   [NSNumber numberWithBool:YES] , @"Male",
                                   nil],
                                  [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"g8", @"Name",
                                   @"g8", @"Icon",
                                   [NSNumber numberWithBool:YES] , @"Male",
                                   nil],
                                  nil];
    NSMutableArray *localArray2 = [NSMutableArray arrayWithObjects:
                                   [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                    @"Test1", @"Name",
                                    nil],
                                   [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                    @"Test2", @"Name",
                                    nil],
                                   [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                    @"Test3", @"Name",
                                    nil],
                                   [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                    @"Test4", @"Name",
                                    nil],
                                   [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                    @"Test5", @"Name",
                                    nil],
                                   [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                    @"Test6", @"Name",
                                    nil],
                                   [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                    @"Test7", @"Name",
                                    nil],
                                   [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                    @"Test8", @"Name",
                                    nil],
                                   nil];

    NSError *error;
    NSManagedObjectContext *moc = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
    for(NSMutableDictionary *item in localArray) {
        NSManagedObject *category = [NSEntityDescription insertNewObjectForEntityForName:@"Category" inManagedObjectContext:managedObjectContext];
        [category setValue:[item objectForKey:@"Name"] forKey:@"Name"];
        [category setValue:[item objectForKey:@"Icon"] forKey:@"Icon"];
        [category setValue:[item objectForKey:@"Male"] forKey:@"Male"];
        for(NSMutableDictionary *item2 in localArray2) {
            NSManagedObject *name = [NSEntityDescription insertNewObjectForEntityForName:@"Name" inManagedObjectContext:managedObjectContext];
            [name setValue:[item2 objectForKey:@"Name"] forKey:@"Name"];
            [[name mutableSetValueForKey:@"CategoryRelationship"] addObject:category];
        }
    }
    [moc save:&error];
这里有一个问题-我检查了保存了8个类别,保存了64个名称,但所有名称中只有8个与任何类别相连接。因此,当我查询类别中的名称时:

[NSPredicate predicateWithFormat:@"CategoryRelationship.@count != 0"] 
…共有8个元素,当我查询时:

[NSPredicate predicateWithFormat:@"CategoryRelationship.@count = 0"] 
…共有56个元素


当我让关系双向运作时。这里发生了什么?

首先,你们的关系应该是双向的。如果不是,您将遇到引用完整性和性能方面的问题,正如您已经看到的。

实体图的描述令人困惑。你是说你有分类名称吗?