我正在针对在内部使用appendFormat:的nsmutablestring编写一个类别。

@interface NSMutableString (Additions)
- (void)appendFormatWithLine:(NSString *)format, ...;
@end

@implementation NSMutableString (Additions)

- (void)appendFormatWithLine:(NSString *)format, ... {
    va_list args;
    va_start(args, format);

    // **calling [self appendFormat] gives a 'EXC_BAD_ACCESS'**
    [self appendFormat:format, args];
    [self appendString:@"\r\n"];

    va_end(args);
}

@end

我不知道如何使用虚拟机列表或虚拟机开始呼叫NSMutableString:appendFormat。怎么能做到?

最佳答案

是的。-appendFormat:采用可变参数,而不是可变参数列表(va_list)。

NSString *formatted = [[NSString alloc] initWithFormat: format arguments: args];
if (formatted) {
    [self appendString: formatted];
    [formatted release];
}

07-26 06:23