Objective-C、具体的にはCocoaは、たとえばNSStringのメソッドのクラスのように可変個引数をサポートします +(NSString *)stringWithFormat:(NSString *)string, ....
。
さて、私が知りたいのは、可変個引数の引数がメソッドの最後にある必要があるということに従うことができるかどうか、またはメソッドがその後も続行できるかどうかです。
例として、(適切なマクロを使用した)可変個引数メソッドがあるとします。
- (void)setObjects:(id)obj, ... NS_REQUIRES_NIL_TERMINATION;
特定のインデックスで使用したい場合は、次のようにできますか?
- (void)setObjects:(id)obj, ... NS_REQUIRES_NIL_TERMINATION atIndex:(int)index;
私は試しましたが、この特定の例は機能せず、「Expected';」というエラーメッセージが表示されます。メソッドプロトタイプの後」。もちろん、次のように、可変個引数の引数が最後にあることを確認するために、引数をシャッフルすることもできます。
- (void)atIndex:(int)index setObjects:(id)obj, ... NS_REQUIRES_NIL_TERMINATION;
これは確かに機能しますが、Cocoaの命名規則の中で、かなり異質な感じがします。これは私にとって問題です。
ありがとうございました、