- 我有一个Item
实体和一个Tag
实体。- 项目可以有多个标签,标签可以链接到多个项目(多对多关系)。- 关系是“有序关系”(在IOS5中使用有序关系)两种方式。
我想获取给定项目的所有子标签
我使用以下获取请求:
NSFetchRequest* request = [NSFetchRequest fetchRequestWithEntityName:@"Item"];
// Fetch all items that have a given tag
Tag* myTag = ....;
request.predicate = [NSPredicate predicateWithFormat:@"ANY tag == %@", myTag];
// This is my attempt to get the correct sort ordering (it crashes)
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"tag"
ascending:YES];
request.sortDescriptors = @[sortDescriptor];
上面的排序描述符返回数据(我假设它是按某种顺序)但随后崩溃:
[_NSFaultingMutableOrderedSet compare:]: unrecognized selector sent to instance 0x10b058f0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'-[_NSFaultingMutableOrderedSet compare:]: unrecognised selector sent to instance 0x10b058f0'
如果我给出一个空的排序描述符数组,那么我不会崩溃,但结果不是有序的。
如何使用 ios5 中的有序关系功能在多对多关系中正确实现排序描述符?