[英]Fill NSSet with CoreData Objects
我在核心数据中有一对多关系。 现在,我想从我的核心数据实体中创建一个对象并将其设置为NSSet。 我认为核心数据对象以正确的方式实例化。 但是我没有将我的Object设置为NSSet起作用。
AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSSet *selectedCategories = [NSSet set];
for (NSString *categoryName in self.categories /*NSMutableArray propterty*/) {
Category *category = [NSEntityDescription
insertNewObjectForEntityForName:@"Category" inManagedObjectContext:context];
category.name = categoryName;
[selectedCategories setByAddingObject:category];
}
[self.delegate addCategoryViewControllerDidSelectCategory:
self didSelectCategories:selectedCategories];
我仍然对Core Data和iOS还是陌生的。 我希望你能帮助我。 先感谢您。
这条线
[selectedCategories setByAddingObject:category];
创建一个未分配给任何变量的新集合。 尝试使用可变集
NSMutableSet *selectedCategories = [NSMutableSet set];
for (NSString *categoryName in self.categories /*NSMutableArray propterty*/) {
Category *category = [NSEntityDescription
insertNewObjectForEntityForName:@"Category" inManagedObjectContext:context];
category.name = categoryName;
[selectedCategories addObject:category];
}
您需要像这样构建集合:
selectedCategories = [selectedCategories setByAddingObject:category];
但这效率很低下,相反,您应该使用NSMutableSet
并将每个新对象添加到其中:
[selectedCategories addObject:category];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.