ランダム化でき、特定のx個の文字列に制限できる文字列の配列を作成しようとしています。
配列をランダム化できる場合は、最初のx個の文字列を選択できますが、それは正常に機能します。
私は現在、このようなコードを使用しようとしています
NSString *statements[9];
statements[0] = @"hello";
これは機能しているように見えますが、配列はごみデータでいっぱいのようです。
誰かが正しい方向に私を助けることができます。 (メモリ割り当ては間違った方法で行われていますか?
ありがとう
9つの文字列を含む配列が必要ですか?
[NSArray arrayWithObjects: @"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", nil]
Xcode 4.4の時点では、はるかにクリーンで読みやすい配列リテラルを使用できます。 「nil」を含める必要がなくなりました。例えば:
NSArray *myArray = @[@"1", @"2", @"3", @"4", @"5"];
そのようなすべてのC自動配列は、埋めるまでゴミでいっぱいになります。後でゴミでいっぱいにならない限り、すべてが期待どおりに機能しています。ただし、CocoaにはNSArrayクラスが含まれています。これは、オブジェクトの配列に使用するのがより一般的です(適切なメモリ管理を行い、フレームワークの残りの部分と連携するため)。
ちょっとしたヒントですが、配列の内容をシャッフルする必要はありません。アクセスをランダム化します。デッキから選択するカードごとに、乱数を選択し、そのインデックスでカードを選択します。次に、一番上のカードを取り出して、選んだカードがあった場所に置きます。
本当に配列をソートしたい場合は、-sortedArrayUsingSelector:
ここで、比較メソッドはNSOrderedAscending
またはNSOrderedDescending
をランダムに返します。