2013-05-15 80 views
1

我在覈心數據中擁有一對多關係。現在我想從我的核心數據實體中創建一個對象,並將其設置爲NSSet。我認爲核心數據對象是以正確的方式實例化的。但是我沒有把它設置爲NSSet。使用CoreData對象填充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還是一個新手。我希望你能幫助我。 預先感謝您。

回答

1

此行

[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]; 
} 
+0

謝謝你,這是正確的與我的問題有關。現在我可以填充該設置。簡單。所以我的錯誤取決於核心數據。 – mooco

1

你需要建立一套這樣的:

selectedCategories = [selectedCategories setByAddingObject:category]; 

但是,這是殘酷的效率低下,而應該使用NSMutableSet和每一個新的對象添加到它:

[selectedCategories addObject:category];