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. 在Swift核心数据中获取属性与许多关系
- 3. 核心数据基于'有序'关系的属性获取
- 4. 核心数据与获取属性的跨存储关系
- 5. 核心数据关系属性
- 6. 获取属性v关系(核心数据 - iPhone)
- 7. 核心数据:通过特定属性获取(联结关系)
- 8. 核心数据的属性Count获取
- 9. 获取核心数据属性的NSArray
- 10. 核心数据关系获取
- 11. 核心数据获取请求关系
- 12. IOS /核心数据:如何通过关系从其他实体获取属性
- 13. 核心数据获取属性
- 14. 如何获取核心数据中的一对多关系?
- 15. 如何获取核心数据中属性的所有值?
- 16. 核心数据与关系和属性关系
- 17. 核心数据提取请求关系属性谓词
- 18. 核心数据谓词来获取基于两个关系的属性
- 19. 核心数据 - 从一个一对多的关系,获取属性
- 20. 核心数据中的关系与属性
- 21. 获取核心数据中一对多关系的数量
- 22. Swift 3 - 核心数据 - 获取结果控制器访问关系属性
- 23. 核心数据关系惰性负载?
- 24. 获取一对多关系数据的核心数据
- 25. 如何使用核心数据关系?
- 26. 如何同步核心数据关系?
- 27. Xcode 4核心数据属性选项
- 28. 绑定到一个核心属性的关系数据
- 29. 通过核心数据关系更改属性的值
- 30. 核心对多对多关系的数据依赖属性