-1

遇到这个 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
}
4

1 回答 1

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,您都可以使用“无 ARC”代码。这个 C 函数只保存了几个字符。

于 2012-12-12T05:36:15.097 回答