gpt4 book ai didi

ios - 无法将关系对象设置为 CoreData 中的另一个对象

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:21:12 29 4
gpt4 key购买 nike

我有 2 个实体:目标和类别。我将关系“类别”添加到目标实体。我希望用户可以从列表中选择一个类别,然后将该类别添加为与目标对象的关系。但我收到错误:-[__NSSingleObjectSetI managedObjectContext]: unrecognized selector sent to instance 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 对象只能有一个类别,那么它是一对一的关系,这意味着 category 属性是一个对象,而不是一组对象 (甚至不是一组 1 个对象)。

你应该像这样设置你的类别:

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

关于ios - 无法将关系对象设置为 CoreData 中的另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33464559/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com