Cómo reemplazar edad paramText / StandartAlert con los reemplazos CFString nuevos?
Pregunta
ParamText()
es una forma muy antigua de la sustitución de parámetros en una cadena que se basa en cadenas Pascal. También StandardAlert
no es del todo listo Unicode.
El nuevo cuadro de mensaje (no tan nuevo) de reemplazo es CFUserNotificationDisplayNotice
pero éste espera CFString
y descubrí que si estoy a punto de pasar a utilizar CFString No soy capaz de usar el reemplazo de parámetros paramText más.
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 );
descubrí que ParamText
no funciona con los nuevos diálogos más y que Apple se olvidó de especificar cómo usarlos.
¿Hay alguna sustitución disponibles que no requeriría de mí para cambiar el formato de los parámetros originales en las cadenas?
Solución
Me encontré una solución, pero no estoy muy contento con él.
CMutableStringRef alertString2;
...
alertString2 = CFStringCreateMutableCopy(NULL, CFStringGetLength(alertString), alertString);
CFStringFindAndReplace( alertString2,
CFSTR("^2"),
minRange, // another CFString
CFRangeMake(0, CFStringGetLength(alertString2)),
0);