0
A
回答
1
這是一個與數組相反的NSSet,因爲它們是無序的。
使用mutableSetValueForKey:這 返回變異的 關係,也不KVO 通知代理。名字看作 「[NS] MutableSet」 「valueForKey」,而 不是 「mutableSetValue」 「forKey」, 因爲它返回一個可變的集合 您操作
NSMutableSet *Students; Students = [Workshop mutableSetValueForKey: @"Students"]; [Students addObject: newStudent]; [Students removeObject: oldStudent];
2
這些關係通常被聲明爲您的NSManagedObject子類的NSSet
,像這樣:
@property (retain) NSSet* students;
還有還有一些特殊的存取方法:
- (void)addStudentsObject:(NSManagedObject *)value;
- (void)removeStudentsObject:(NSManagedObject *)value;
- (void)addStudents:(NSSet *)value;
- (void)removeStudents:(NSSet *)value;
NSSets類似於NSArrays,但他們沒有排序,因爲核心數據不能保證管理對象的特殊排序順序。
1
您通常不需要創建一個多對多關係的數組,因爲他們無論如何都會自動進入NSSet。這比數組提供了更好的靈活性。
但是,如果您需要按特定順序排序的學生,則可以使用排序描述符來返回排序後的數組。假設你已經有了WorkShop實例,並且你想要一個按姓氏排序的學生排列順序,你可以這樣使用:
WorkShop *aWorkShop=//... fetch the appropiate WorkShop instances
NSSortDescriptor *sort=[NSSortDescriptor sortDescriptorWithKey:@"lastName" ascending:NO];
NSArray *sortedStudents=[aWorkShop.students sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];
相關問題
- 1. 核心數據:獲取關係屬性
- 2. 關係中的核心數據屬性?
- 3. 核心數據與獲取屬性的跨存儲關係
- 4. 核心數據基於'有序'關係的屬性獲取
- 5. 核心數據關係屬性
- 6. 核心數據:通過特定屬性獲取(聯結關係)
- 7. 獲取屬性v關係(核心數據 - iPhone)
- 8. 核心數據的屬性Count獲取
- 9. 獲取核心數據屬性的NSArray
- 10. 核心數據關係獲取
- 11. 核心數據獲取關係對象
- 12. 核心數據獲取請求關係
- 13. IOS /核心數據:如何通過關係從其他實體獲取屬性
- 14. 核心數據獲取屬性
- 15. 如何獲取核心數據中的一對多關係?
- 16. 如何獲取核心數據中屬性的所有值?
- 17. 核心數據與關係和屬性關係
- 18. 核心數據提取請求關係屬性謂詞
- 19. 核心數據中提取的屬性
- 20. 如何提取核心數據中的數據關係?
- 21. 核心數據:多對多關係中的屬性
- 22. 核心數據中的關係與屬性
- 23. 核心數據 - 從一個一對多的關係,獲取屬性
- 24. 核心數據謂詞來獲取基於兩個關係的屬性
- 25. 獲取核心數據相關實體屬性
- 26. 如何使用關係值獲取核心數據不同值?
- 27. 獲取核心數據中一對多關係的數量
- 28. Swift 3 - 核心數據 - 獲取結果控制器訪問關係屬性
- 29. 核心數據關係惰性負載?
- 30. 獲取一對多關係數據的核心數據