2012-01-10 23 views
-1

私はいくつかの名前(String)を持つ配列を持っています。配列の内容をアルファベット順に並べ替え

1.)これらの名前をアルファベット順に配列に並べ替える必要があります。 2.)その後、この配列にいくつかの名前を追加するので、この配列に追加する必要があります。

これをプログラムで行うにはどうすればよいですか?

注:これまでの作業を示すコードはありません。私はちょうど配列が作成されている。

EDIT

私の配列の宣言がある場合は、

NSArray *array = [NSArray arrayWithObjects:@"A",@"C",@"B", @"M",nil]; 

どのように並べ替えることができますか?

+1

質問をする前に、ドキュメントを読んでみてください。 –

+1

あなたの「配列宣言」は無効なコードです。実際のコードを投稿して、あなた自身の問題を解決しようとしたことを示してください。 –

答えて

2

あなたは本当にドキュメントをご覧になってみてください - あなたはそれのこつを得れば、あなたはかなり迅速に物事を把握することができます

NSArrayためのドキュメントはあなたの配列をソートするための正確な方法を与える:

NSArray *array  = [NSArray arrayWithObjects:@"A", @"C", @"B", @"M", nil]; 
NSArray *sortedArray = [array sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; 

は今、あなたは後であなたが最も可能性の高いNSMutableArrayのためのドキュメントは、方法を示すNSMutableArrayを使用するオブジェクトを追加するために欠けている検討します

- (void)sortUsingSelector:(SEL)comparator 

したがって、あなたは

2012-01-10 17:47:11.477 Untitled[11904:707] (
    a, 
    b, 
    c 
) 
が生じ場所に配列をソートします

NSMutableArray *myMutableArray = [NSMutableArray arrayWithObjects:@"c", @"a", @"b", nil]; 
[myMutableArray sortUsingSelector:@selector(caseInsensitiveCompare:)]; 

を使用することができ

+0

+1 4つの同時回答の中で最も徹底的です。 – PengOne

2

これは何が必要でしょう。

もちろん
NSArray * sortedArray = [yourArray sortedArrayUsingSelector: @selector(caseInsensitiveCompare:)]; 

あなたが質問をする前に、「ソート配列」のApple docsを検索しなかった理由、一部の人々は頼むかもしれません。私ではない。私はポイントを取ってうれしい!

1

これは、配列をソートする必要があります(新しい値を追加した後に行う必要があります)。これを行うのは非常に簡単です:

NSArray *sortedArray = [myArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; 

この例では、大文字と小文字を区別だろう - しかし、あなたは同様に大文字と小文字が区別を行うことができます。

+0

私は自分の質問を編集しました。どうぞご覧ください。あなたのコードを私の質問の編集部分に変更する方法 – sharon

1

後で追加できるようにするには、NSArrayまたはNSDictionaryのいずれかの可変タイプを使用する必要があります。配列に他のデータが関連付けられていない名前のみが含まれている場合は、NSMutableArrayを使用して格納するのが最も簡単です。

アルファベット順にするには、NSArrayの方法sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)を一緒に使用できます。これにより、すべての作業が効率的に実行されます。

関連する問題