NSSet *selectedCategories = [NSSet set];
for (NSString *name in self.categories) {
Category *cat = [NSEntityDescription insertNewObjectForEntityForName:@"Category" inManagedObjectContext:context];
cat.name = name;
[selectedCategories setByAddingObject:cat]; // 錯誤:NSSet 不可變,回傳新集合未保存
}
[self.delegate addCategoryViewControllerDidSelectCategory:self didSelectCategories:selectedCategories];
NSSet 為不可變集合setByAddingObject: 回傳新的 NSSet 實例,原變數 selectedCategories 仍指向空集合NSMutableSet *selectedCategories = [NSMutableSet set];
for (NSString *name in self.categories) {
Category *cat = [NSEntityDescription insertNewObjectForEntityForName:@"Category" inManagedObjectContext:context];
cat.name = name;
[selectedCategories addObject:cat]; // 直接修改可變集合
}
[self.delegate addCategoryViewControllerDidSelectCategory:self didSelectCategories:selectedCategories];
若實體關係定義為 To-Many,直接對關係屬性賦值:
parentEntity.categories = selectedCategories; // NSSet 或 NSMutableSet 均可,CoreData 內部處理