簡體   English   中英

用CoreData對象填充NSSet

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM