1

私の宿題では、.h と .m をコマンド ライン アプリケーションに書き込む必要があります。メインは先生から与えられます。これは、100 スペースの単純なシュートとはしごスタイルのボード プリントアウトです。

はしごとシュートは、ボードの表現を格納する 1 次元配列内の "L10" と "C10" で示されます。指定されたメインの最初の部分は、空の文字列配列を作成する必要があると思われる initBoard です。はしごとシュートの数は、提供されたコードの次の 2 行で指定されており、それらのメソッドを介してボードにランダムに配置することを想定しています。

「initBoard」 (メインが最初に呼び出す)メソッドで for ループを使用して NSArray をサイズ 100 に構築し、空の文字列を入力すると、空の文字列を「L10」に変更できますか? 「makeLadders」および「makeChutes」メソッドで必要な「C10」文字列、またはこのようなものに NSMutableArray を使用する必要がありますか?

NSArray は不変、つまり init 後に変更できないことを読みました。そのため、配列の内容を変更したい場合は NSMutableArray を使用する必要があります。私の先生は、ボード データを保持する必要があるものとして NSArrays について特に言及しているので、混乱しています。

4

1 に答える 1

1

ここでは2つの選択肢があります。

  1. NSStringオブジェクトを含む可変配列。
  2. NSMutableStringオブジェクトを含む不変の配列。

最初の選択肢の例:

NSMutableArray* array=[[NSMutableArray alloc] initWithCapacity: 100];
for(NSUInteger i=0; i<100; i++)
{
    [array addObject: @""];
}

値を変更するには、次を使用します。

[array replaceObjectAtIndex: i withObject: @"New String"];
于 2013-02-16T12:00:01.727 に答える