Если у вас есть несколько приписанных строк, которые вы хотите поместить в другую приписанную строку, вы можете использовать эту категорию, которую я написал:
Однако вам придется передать NULL в качестве последнего аргумента функции, в противном случае произойдет сбой из-за ограничений va_list при определении размера.
[attributeString stringWithFormat: attrFormat, attrArg1, attrArg2, NULL];
@implementation NSAttributedString(stringWithFormat)
+(NSAttributedString*)stringWithFormat:(NSAttributedString*)format, ...{
va_list args;
va_start(args, format);
NSMutableAttributedString *mutableAttributedString = (NSMutableAttributedString*)[format mutableCopy];
NSString *mutableString = [mutableAttributedString string];
while (true) {
NSAttributedString *arg = va_arg(args, NSAttributedString*);
if (!arg) {
break;
}
NSRange rangeOfStringToBeReplaced = [mutableString rangeOfString:@"%@"];
[mutableAttributedString replaceCharactersInRange:rangeOfStringToBeReplaced withAttributedString:arg];
}
va_end(args);
return mutableAttributedString;
}
@end