AFAIK ObjectiveC (सिर्फ C और C++) की तरह एक वाक्य रचना आपके द्वारा सीधे तौर मन में है की अनुमति देता है कि आप के साथ प्रदान नहीं करते।
सामान्य कार्यवाही एक समारोह के दो संस्करणों को बनाना है। एक जिसे सीधे उपयोग किया जा सकता है ... और दूसरों द्वारा बुलाया जाने वाला दूसरा पैरामीटर को va_list के रूप में पास करने में काम करता है।
..
[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]);
}
-otherotherMethod में एक मेमोरी दुबला है: पैरामीटर: आपको [[NSString alloc] init] –
पर एक ऑटोरेलीज़ जोड़ने की आवश्यकता है और सही @ बिल – Till
उत्कृष्ट! मैं predictWithFormat को भविष्य में एक परिवर्तनीय तर्क सूची उत्तीर्ण करना चाहता था: और यह सुझाव देने के बाद, मुझे एहसास हुआ कि ऐप्पल ने वास्तव में एक predicateWithFormat प्रदान किया है: तर्क: समकक्ष जो मैंने पहले नहीं देखा था। – ArtOfWarfare