Ios 使用nsattributedstring和nslocalizedstring

Ios 使用nsattributedstring和nslocalizedstring,ios,nsattributedstring,nslocalizedstring,Ios,Nsattributedstring,Nslocalizedstring,我的旧代码使用NSLocalizedString显示以下内容,其中outputText是一个NSMutableString,在单个输出会话中包含许多这样的行: [outputText appendFormat: NSLocalizedString(@"\n\n%@ and %@ are identical. No comparison required.", @"\n\n%@ and %@ are identical. No comparison required."), self.ipAd

我的旧代码使用NSLocalizedString显示以下内容,其中outputText是一个NSMutableString,在单个输出会话中包含许多这样的行:

[outputText appendFormat: NSLocalizedString(@"\n\n%@ and %@ are identical.  No comparison required.", @"\n\n%@ and %@ are identical.  No comparison required."), self.ipAddress, secAddress.ipAddress];
我正在尝试更改各种ipAddress字符串的颜色,但在使用NSMutableAttributedString时找不到类似的方法

我面临的最大问题是,由于整个字符串都将本地化,因此在不分解格式化输出的每个部分的情况下,我无法可靠地设置NSRange

我是否需要剖析这个字符串的每个部分,将其转换为NSAttributedString并将每个部分附加到outputText???

答案是:是


是的,您需要分别对具有不同属性的部分进行本地化。

我想您可以很容易地对其进行正则化,因为数字在常用的本地化格式中不会从阿拉伯数字形式发生变化。呃-您是对的。在使用BGP之后,我屏蔽了正则表达式。谢谢你的现实检查!您可以使用
rangeOfString:
在插入字符串后获取插入字符串的范围:但这确实考虑了本地化字符串中参数顺序颠倒的用例,例如
“(%1$@,%2$@)”
。这就是为什么
-(id)initWithFormat:…
方法在
NSAttributedString
类中会很好,你不这么认为吗?