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. 获取一对多关系数据的核心数据