我有一个父实体,它有很多孩子.如果我使用属性(例如名称)命令父获取,一切正常.但如果我试试这个:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"child.@count" ascending:NO];
Run Code Online (Sandbox Code Playgroud)
它不起作用.我也尝试过添加
[fetchRequest setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:[entityProperties objectForKey:@"child"]]];
Run Code Online (Sandbox Code Playgroud)
但它没有奏效.
我允许按照多个来排序.@ count或我是否需要添加属性并在每次添加孩子时更新它?
假设您使用的是sqlite商店; 你不能排序@count,因为它是在"对象"级别解决,而NSSortDescriptor对NSFetchRequest在数据库级别解决.因此,正如您猜测的那样,您需要创建一个计数属性来进行排序.
如果您使用的是二进制或内存存储类型,则count应该可以正常工作,因为它们只能作为对象访问.