2012-12-04 227 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中找到其他所有可能的排序方法。