0

クラシックC(NSArrayまたはその子の1つではない)に似た配列を作成します-のようなものBOOL i[5];です。そして、そのすべての値をNOに等しくしたいと思います。

まず、そのような配列の初期値に関する情報は見つかりませんでした(クラシックCでは未定義になることはわかっていますが、Objective-Cについては正確にはわかりません。クラスとその内部データに関する情報を見つけました[割り当て後、初期化なし]、ただし単純なデータ型についてではありません)。

そして2つ目は、配列値を手動で設定する必要がある場合、memset(...);または何か別のものを使用する必要がありますか?

考えられる質問を防ぐために...この構造を一時的なブールフラグの配列として使用したいのですが、ここでNSArrayのようなものを使用することが証明されているとは思いません。

4

2 に答える 2

2

それBOOL i[5]がObjCクラスのivarである場合、その内容はmemset0に初期化(-ed)されます。

+allocメソッドで説明されているように:

...他のすべてのインスタンス変数のメモリはに設定され0ます。


他の状況で配列をすべてNOに設定するには、次を使用できます。

memset(i, 0, sizeof(i));
于 2010-06-11T09:22:36.057 に答える
0

Cのようにundefではなく0-edであっても、NOが0かどうかはわからないため(実際には...!)、適切な初期化によってすべての値が明示的に設定されるはずです。

for(j = 0; j <5; j ++)i [j] = NO;

仕事をすることができます。

于 2010-06-11T11:28:39.590 に答える