Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Can';t将关系对象设置为CoreData中的另一个对象_Ios_Objective C_Core Data - Fatal编程技术网

Ios Can';t将关系对象设置为CoreData中的另一个对象

Ios Can';t将关系对象设置为CoreData中的另一个对象,ios,objective-c,core-data,Ios,Objective C,Core Data,我有两个实体:目标和类别。我将关系“类别”添加到目标实体。我希望用户可以从列表中选择一个类别,然后将该类别添加为目标对象的关系。但我收到错误:-[\uu NSSingleObjectSetI managedObjectContext]:无法识别的选择器发送到实例0x138a22fa0 我的代码: - (BOOL)save { // Get Category object NSManagedObject *objCategory = [self getCategoryObject

我有两个实体:目标和类别。我将关系“类别”添加到目标实体。我希望用户可以从列表中选择一个类别,然后将该类别添加为目标对象的关系。但我收到错误:
-[\uu NSSingleObjectSetI managedObjectContext]:无法识别的选择器发送到实例0x138a22fa0

我的代码:

- (BOOL)save {

    // Get Category object
    NSManagedObject *objCategory = [self getCategoryObjectWithID:@"1"];
    if (!objCategory) {
        NSLog(@"ERROR objCategory fetching!");
        return;
    }

 NSEntityDescription *entity =  [NSEntityDescription entityForName:@"Goal"
                                               inManagedObjectContext:[CoreDataWrapper myManagedContext]];

    NSManagedObject *goal = [[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:[CoreDataWrapper myManagedContext]];
    [goal setValue:strID forKey:@"id"];
    [goal setValue:[NSSet setWithObject:objCategory] forKey:@"category"]; // here error

return [CoreDataWrapper saveMyContext];

}

- (NSManagedObject *)getCategoryObjectWithID:(NSString *)catID {

    // Fetching
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Category"];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K == %@", @"categoryID", catID];
    [fetchRequest setPredicate:predicate];

    // Execute Fetch Request
    NSError *fetchError = nil;
    NSArray *result = [[CoreDataWrapper myManagedContext] executeFetchRequest:fetchRequest error:&fetchError];

    if (!fetchError) {
        return result[0];
    }

    return nil;
}

我不熟悉CoreData,也许这是一些愚蠢的问题,但我关注了很多资源,找不到问题所在。

如果你的
目标
对象只能有一个类别,那么它是一对一关系,这意味着
类别
属性是一个对象,而不是一组对象(甚至不是一组对象)

您应该这样设置您的类别:

[goal setValue:objCategory forKey:@"category"];