Gre*_*reg 12 cocoa cocoa-touch nspredicate
我正在尝试使用NSPredicate对数组进行排序.我已经读过其他可能使用NSSortDescriptor的地方可能是一个选项.搞清楚这一点有些麻烦.
我试图通过companyName对数组进行排序.
任何建议表示赞赏,谢谢
格雷格
- (void)filterSummaries:(NSMutableArray *)all byNameThenBooth:(NSString*) text results:(NSMutableArray *)results
{
[results removeAllObjects];
if ((nil != text) && (0 < [text length])) {
if ((all != nil) && (0 < [all count])) {
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"companyName contains[cd] %@ OR boothNumber beginswith %@", text, text];
[results addObjectsFromArray:[all filteredArrayUsingPredicate:predicate]];
}
}
else {
[results addObjectsFromArray:all];
}
}
Run Code Online (Sandbox Code Playgroud)
Wiz*_*izz 33
你有几个选项如何排序数组:
我将在这里展示一个基于NSSortDescriptor的方法.
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"companyName contains[cd] %@ OR boothNumber beginswith %@",
text,
text];
// commented out old starting point :)
//[results addObjectsFromArray:[all filteredArrayUsingPredicate:predicate]];
// create a descriptor
// this assumes that the results are Key-Value-accessible
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"companyName"
ascending:YES];
//
NSArray *results = [[all filteredArrayUsingPredicate:predicate]
sortedArrayUsingDescriptors:[NSArray arrayWithObject:descriptor]];
// the results var points to a NSArray object which contents are sorted ascending by companyName key
Run Code Online (Sandbox Code Playgroud)
这应该做你的工作.
| 归档时间: |
|
| 查看次数: |
23443 次 |
| 最近记录: |