Objective-Cで文字列型の2次元配列を宣言するにはどうすればよいですか?Objective-Cで文字列型の2次元配列を宣言するにはどうすればよいですか?
答えて
まず、クラスを使用して内部配列の文字列を保持するか、plistファイルから読み込み(文字列の2次元配列を作るのは簡単です)、考えてみましょう。
直接宣言の場合、いくつかのオプションがあります。あなたがNSArrayのを使用したい場合は、手動でこのような構造を作成する必要があります:
NSArray *strings = @[ @[ @"A", @"B", @"C" ], @[ @"D", @"E", @"F" ], @[ @"G", @"H", @"I" ] ]
:
NSMutableArray *strings = [NSMutableArray array];
for(int i = 0; i < DESIRED_MAJOR_SIZE; i++)
{
[strings addObject: [NSMutableArray arrayWithObject:@"" count:DESIRED_MINOR_SIZE]];
}
または、配列リテラルを使用して、あなたはこのような不変バージョンを取得することができます
あなたは、このようにそれを使用することができます:
NSString *s = [[strings objectAtIndex:i] objectAtIndex:j];
これは、初期化がややぎこちないですが、NSArrayのメソッドを使用する場合には、移動するための方法です。
代替がC配列を使用することです。その後、
NSString *strings[MAJOR_SIZE][MINOR_SIZE] = {0}; // all start as nil
そして、このようにそれを使用します。
NSString *s = strings[i][j];
これはそれほど厄介ですが、に注意する必要がありをコピー/維持の値を入力して配列から削除します。 (あなたはもちろん、ARCを使用している場合を除き!)にNSArrayはあなたのためにこれを行うだろうが、Cスタイルの配列で、あなたは配列を置き換えるために、このような何かを実行する必要があります。他の違いは、あなたということです
[strings[i][j] release];
strings[i][j] = [newString retain];
NSArraysではなくCスタイルの配列にnilを置くことができます。NSArrayを使用する必要があります。 NSStringメモリ管理の詳細については、Stack Overflowの質問Cocoa: Memory management with NSStringもご覧ください。
+1私は多くの入力を節約します。 – Abizern
あなたは、文字列の2次元配列を宣言し、初期化したい場合は、あなたがこれを行うことができます:
NSArray *myArray = [NSArray arrayWithObjects:
[NSArray arrayWithObjects:@"item 1-1", @"item 1-2", nil],
[NSArray arrayWithObjects:@"item 2-1", @"item 2-2", nil],
[NSArray arrayWithObjects:@"item 3-1", @"item 3-2", nil],
[NSArray arrayWithObjects:@"item 4-1", @"item 4-2", nil],
nil];
これはあなたの不変の配列を与えるという利点があります。
こんにちはSteve McLeod、私はこのようなmyArrayを持っている場合、私は "アイテム1-1"の価値を得ることができます。 –
[[myArray objectAtIndex:1] objectAtIndex:1] – Hackmodford
私は自己宣伝広告かもしれませんが、私はNSMutableArray
の前に2次元配列として簡単にラッパーを書いています。これはGitHubでCRL2DArray
として利用できます。 https://github.com/tGilani/CRL2DArray
Android(Java)から来るobj-Cで2次元配列を作成するのがいかに難しいか、非常に便利なGitHubサー! –
唯一の問題は、通常のNSArrayにはcountなどのような組み込みのメソッドがあることが欲しいということです。 –
- 1. 2次元配列をjavascriptで宣言するにはどうすればよいですか?
- 2. 2次元配列を3次元配列にするにはどうすればいいですか?
- 3. ObjectiveCで3次元配列を宣言して使用する方法は?
- 4. C++で文字列の配列を宣言するにはどうすればよいですか?
- 5. Cで多次元配列に文字列を格納するにはどうすればよいですか?
- 6. 多次元配列を1次元配列に変換するにはどうすればよいですか?
- 7. 文字列は宣言されていない型ですか?
- 8. 2次元配列を2次元配列で作成する
- 9. どのように2次元配列
- 10. 文字列を2次元配列に分解する
- 11. C文字列を2次元配列に保存する
- 12. 1次元配列を複数の配列に分割するにはどうすればよいですか?
- 13. この多次元配列で名前を太字にするにはどうすればよいですか?
- 14. C言語の宣言時に2次元配列を初期化する
- 15. Javaで2次元配列のディープコピーを作成するにはどうすればよいですか?
- 16. Pythonで2つの1次元データ配列を統合するにはどうすればよいですか?
- 17. 2次元配列の文字列を初期化する
- 18. 2次元配列内の文字列(文字*)を格納
- 19. このメソッド内で文字列を宣言するにはどうすればよいですか?
- 20. numpyの2次元配列内にリストを格納するにはどうすればよいですか?
- 21. Stringの2次元配列をintに変換するにはどうすればよいですか?
- 22. MATLABでグローバルな2次元配列を宣言するための構文は何ですか?
- 23. 2次元の動的長さの配列を作成するにはどうすればよいですか?
- 24. 2つの文字列配列をカスタムリストビューに追加するにはどうすればよいですか?
- 25. 2次元配列をPythonでどのようにスケールするのですか?
- 26. 2次元配列のクラスを作成するにはどうすればよいですか?
- 27. Cの文字配列から文字列を取得するにはどうすればよいですか?
- 28. Linqを使用して2次元配列をソートするにはどうすればよいですか?
- 29. Objective-Cで2次元配列を渡すにはどうすればよいですか?
- 30. 3次元配列を2次元配列に変換する
あなたがNS(Mutable)Arrayを話しているなら、それを「宣言」しないでください。 NSArrayにはコンテンツタイプが割り当てられていないので、外部配列を宣言するだけです。どのように使用するかはあなた次第です。 –