什么时候会使用initWithFormat:arguments?

cal*_*ugh 8 cocoa nsstring

NSString方法initWithFormat:arguments:将va_list作为参数.我无法弄清楚何时使用它(甚至如何使用它).当常规的initWithFormat:更加用户友好时,为什么Apple会添加这样的方法?

Joh*_*eek 11

您无法将格式参数的动态列表传递给-initWithFormat:.例如,如果你想在-stringByAppendingFormat:没有的情况下实现自己-initWithFormat:arguments:,那么你就有了它的工作.使用该va_list版本,您可以这样做:

- (NSString *)stringByAppendingFormat:(NSString *)format, ... {
    va_list args;
    va_start(args, format);
    NSString * result = [self stringByAppendingString:[NSString stringWithFormat:format arguments:args]];
    va_end(args);
    return result;
}
Run Code Online (Sandbox Code Playgroud)