NSString添加了这个Objective-c代码的功能吗?

时间:2012-12-12 05:27:28

标签: objective-c categories

超越这个NSString Addition并且我不知道它的用途或用途是什么?

NSString *NSStringWithFormat(NSString *formatString, ...) {
va_list args;
va_start(args, formatString);

NSString *string = [[NSString alloc] initWithFormat:formatString arguments:args];

va_end(args);

#if defined(__has_feature) && __has_feature(objc_arc)
    return string;
#else 
    return [string autorelease];
#endif
}

1 个答案:

答案 0 :(得分:3)

这是一个C函数,可以让你这样做:

NSString *str = NSStringWithFormat(@"This is a number: %d", someIntValue);

而不是:

// No ARC
NSString *str = [NSString stringWithFormat:@"This is a number: %d", someIntValue];

// With ARC
NSString *str = [[NSString alloc] initWithFormat:@"This is a number: %d", someIntValue];

对我来说似乎没什么意义,因为无论是否使用ARC,您都可以使用“No ARC”代码。这个C函数只保存几个字符。