[英]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.