0

何よりも私の興味のために。

そのように定義されたクラスがある場合...

MyClass
-------
NSString *name

そして、それらの多くを配列 (または可変配列) に入れます。次に、このような述語を使用できます...

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

指定された値の名前を持つオブジェクトのみが含まれるように配列をフィルタリングします。

または、そのような記述子をソートします...

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

配列を名前フィールドで昇順に並べ替えます。

私の質問は、文字列 (または NSNumbers) の配列がある場合、同様の「フォーマット」述語を使用できますか?

たとえば、配列があるとします...

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

「predicateWithFormat」を使用して、この「sortDescriptorWithKey」の配列をフィルタリングしてソートできますか?

ブロックを使用できることは知っていますが、これが可能かどうか疑問に思っていますか?

4

2 に答える 2

1

確かに、predicateWithFormat: を使用して、文字列の配列などをフィルター処理できます。ソートに関しては、sortedArrayUsingSelector: を使用し、必要なセレクター (compare:、caseInsensitiveCompare: など) を使用します。単純な配列にはキーがないため、sortDescriptorWithKey を使用できませんでした。

于 2012-12-04T17:41:47.233 に答える
0

文字列には、述語を使用したり、並べ替えたりするためのキーがありません。Apple docsで、配列をソートする他のすべての方法を見つけることができます。

于 2012-12-04T17:39:29.643 に答える