4
即使它被聲明爲NSString而不是NSArray並且只有一個冒號,[NSString stringWithFormat:];
也可以接受多個參數。格式爲方法參數的字符串(objective-c)
我怎麼能有這個爲我自己的方法,這就像NSLog的替代品寫入文本字段,所以它經常使用,我不想繼續添加更多的方括號。
即使它被聲明爲NSString而不是NSArray並且只有一個冒號,[NSString stringWithFormat:];
也可以接受多個參數。格式爲方法參數的字符串(objective-c)
我怎麼能有這個爲我自己的方法,這就像NSLog的替代品寫入文本字段,所以它經常使用,我不想繼續添加更多的方括號。
你的論點名稱後使用省略號:http://numbergrinder.com/node/35:從
- (NSNumber *) addValues:(int) count, ...
{
va_list args;
va_start(args, count);
NSNumber *value;
double retval;
for(int i = 0; i < count; i++)
{
value = va_arg(args, NSNumber *);
retval += [value doubleValue];
}
va_end(args);
return [NSNumber numberWithDouble:retval];
}
例子:
(NSNumber *) addValues:(int) count, ...;
然後,您需要使用va_list
和va_start
通過所提供的參數來迭代
請注意,這是一種內置的C功能,不屬於Objective-C的一部分;還有這裏的va_arg使用的一個很好的解釋:
http://publications.gbdirect.co.uk/c_book/chapter9/stdarg.html
會怎麼做我用stringWithFormat做到這一點?說我想要一個名爲'titleWithFormat:' – 2010-11-05 20:05:53
方法您的方法簽名將是 - (NSString *)titleWithFormat:(NSString *)格式,...; – GendoIkari 2010-11-05 20:18:05
而我的第二個鏈接提供了使用while循環而不是for循環的示例,您可以使用它循環每個提供的參數。如果你想要的是和stringWithFormat相同的話;你應該能夠調用該方法並傳遞參數。 – GendoIkari 2010-11-05 20:20:42