2012-12-04 216 views
0

更为我的兴趣比任何其他。排序/筛选NSArray/NSMutableArray

如果您已经定义是这样的...

MyClass 
------- 
NSString *name 

一类,你把他们中的很多到一个数组(或可变数组)。然后你可以使用这样的谓词...

[NSPredicate predicateWithFormat:@"name = %@", someValue]; 

过滤数组,使它只包含其名称为给定值的对象。

或排序描述是这样的...

[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]; 

由名称字段按升序排序的数组。

我的问题是,如果你有一个字符串数组(或NSNumbers),你可以使用类似的“格式”谓词?

例如说你有阵...

@[@"Cat", @"Bat", @"Dog", @"Cow"]; 

你可以使用一个“predicateWithFormat”过滤掉该阵列的“sortDescriptorWithKey”的排序呢?

我知道你可以使用块,但只是想知道这是可能的吗?

回答

1

当然,你可以用predicateWithFormat:过滤字符串或其他任何东西。至于排序,你可以使用sortedArrayUsingSelector:,并使用你想要的选择器(比较:,caseInsensitiveCompare:等)。简单数组中没有键,所以不能使用sortDescriptorWithKey。

+0

啊!我总是想知道什么sortUsingSelector的意思!这是有道理的。我一直使用这个块,并认为必须有一个更简单的方法。谢谢。 – Fogmeister

0

一个字符串没有任何键可以使用您的谓词或排序方式。您可以在apple docs中找到其他所有可能的排序方法。