如何更换旧ParamText / StandartAlert与新CFString字符串替换?
题
ParamText()
是在基于帕斯卡串的串置换参数的真的老方法。也StandardAlert
是不太Unicode的准备。
在新的消息框(不那么新的)更换CFUserNotificationDisplayNotice
但是这一个期望CFString
和我发现,如果我即将切换到使用CFString字符串我不能够使用ParamText参数替换了。
Str255 alertString; // PascalString, yuck!
ParamText(NULL, NULL, minString, maxString);
localize( "A value between ^2 and ^3 is required.", &alertString );
StandardAlert( kAlertNoteAlert, (const unsigned char *)&alertString, nil, nil, &itemHit );
我发现ParamText
不与新的对话框工作了和苹果忘了指定如何使用它们。
是否有任何可用的替代,不会要求我修改字符串中的原始参数格式?
解决方案
我发现自己的解决方案,但我不是很高兴。
CMutableStringRef alertString2;
...
alertString2 = CFStringCreateMutableCopy(NULL, CFStringGetLength(alertString), alertString);
CFStringFindAndReplace( alertString2,
CFSTR("^2"),
minRange, // another CFString
CFRangeMake(0, CFStringGetLength(alertString2)),
0);
不隶属于 StackOverflow