(sadece C ve C++ gibi) AFAIK ObjectiveC doğrudan aklında ne sağlayan bir sözdizimi ile size sağlamaz.
Normal çözüm, bir işlevin iki sürümünü oluşturmaktır. Doğrudan kullanarak çağrılabilir ... ve başkaları tarafından çağrılan bir başka parametreler bir va_list biçiminde parametreleri geçiriyor.
..
[obj aMethod:@"test this %d parameter", 1337);
[obj anotherMethod:@"test that %d parameter", 666);
..
-(void) aMethod:(NSString *)a, ...
{
va_list ap;
va_start(ap, a);
[self anotherMethod:a withParameters:ap];
va_end(ap);
}
-(void) anotherMethod:(NSString *)a, ...
{
va_list ap;
va_start(ap, a);
[self anotherMethod:a withParameters:ap];
va_end(ap);
}
-(void) anotherMethod:(NSString *)a withParameters:(va_list)valist
{
NSLog([[[NSString alloc] initWithFormat:a arguments:valist] autorelease]);
}
-anotherMethod içinde bir bellek var: withParameters: [[NSString alloc] init] –
true için bir otomatikleştirme eklemeniz ve @Bill – Till
Mükemmel! WithFormat'ı tahmin etmek için bir değişken argüman listesi iletmek istedim: ve bunu önerdikten sonra, Apple'ın aslında daha önce fark etmemiş olduğum bir eşdeğerWithFormat: argüman sağladığını fark ettim. – ArtOfWarfare