NSFetchedResultsController 我在数组中使用带有属性的谓词?
Posted
技术标签:
【中文标题】NSFetchedResultsController 我在数组中使用带有属性的谓词?【英文标题】:NSFetchResultController i am using predicate with attribute in array? 【发布时间】:2012-12-11 14:48:54 【问题描述】:在NSFetchRsultController
我正在使用:
[NSPredicate predicateWithFormat:@"type in %@", myArray];
我想要数据按照数组中数据的顺序排列,但是NSSortDescriptor
是NSFetchResultController
的必填项,那么NSSortDescriptor
我得用什么呢?
【问题讨论】:
【参考方案1】:您可以使用sortDescriptors
将数据按数组顺序排列。
排序描述符指定发出获取请求时返回的对象应如何排序——例如按姓氏然后按名字。排序描述符按照它们在 sortDescriptors 数组中出现的顺序应用(以最低数组索引优先顺序)。
代码示例:
...
NSMutableArray * sortDescriptors = [[NSMutableArray alloc] initWithCapacity:[myArray count]];
for (NSString * key in myArray)
[sortDescriptors addObject:[[NSSortDescriptor alloc] initWithKey:key ascending:NO]];
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptors release];
...
【讨论】:
但是 Array 是类型值,我如何将它用作 SortDesriptor 键? @user1800529 类型值?你的意思是像int
这样的东西吗?您可以使用[NSValue valueWithInt:aType]
存储到数组中。【参考方案2】:
用户1800529,
您似乎希望将顺序顺序的东西插入到您的数据库中。 Core Data 不保证该顺序。因此,您需要选择要排序的东西。我使用创建时间,这在我的大多数实体中都有,但您可以轻松使用其他属性。
安德鲁
【讨论】:
以上是关于NSFetchedResultsController 我在数组中使用带有属性的谓词?的主要内容,如果未能解决你的问题,请参考以下文章