0

Objective-Cでは、次のように言うことができます。

NSArray *anArray = [NSArray arrayWithObjects:obj,obj2, nil];

Objective-cに慣れていない場合は、NSArray、anArrayのタイプのオブジェクトが必要であり、メソッドarrayWithObjectsを呼び出して、それが番兵として機能し、同じ数のパラメーターを受け入れると言っています(この場合はオブジェクト)nilに達するまで。

このようなことを達成する方法はありますか?

createObjects(o1,o2,o3,o4,-1);

関数のメソッドは、キー値に達するまで、同じ数のパラメーターを受け入れることができますか?

さて、CとC ++でセンチネルを実行できることは承知していますが、Objective-Cのようにメソッドにこのようなものを提供する方法はありますか?

4

2 に答える 2

3

可変個引数関数を記述し、番兵を使用して最後の実際の引数を見つけることができます。

ただし、C ++では、可変個引数関数は型セーフではないため、これは通常はお勧めできません。C ++では、渡したい要素をコンテナ、配列、またはある種のクラスオブジェクトに入れて、それを関数に渡すことをお勧めします。エラーが発生しにくく、検証がはるかに簡単です。

于 2010-11-06T04:16:23.160 に答える
0

あなたが探しているのはvarargsだと思います。

于 2010-11-06T04:17:12.537 に答える