كيفية استبدال ParamText / standartalert القديمة مع بدائل CFSTRING أحدث؟
سؤال
ParamText()
هي طريقة قديمة حقا لاستبدال المعلمات في سلسلة تعتمد على سلاسل Pascal. ايضا StandardAlert
ليس تماما يونيكود جاهزة.
صندوق الرسائل الجديد (ليس جديدا جدا) 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
لا يعمل مع مربعات الحوار الجديدة بعد الآن وأن Apple نسيت تحديد كيفية استخدامها.
هل هناك أي بديل متاح لن يتطلب مني تغيير تنسيق المعلمات الأصلية في السلاسل؟
المحلول
وجدت نفسي حل لكنني لست سعيدا تماما به.
CMutableStringRef alertString2;
...
alertString2 = CFStringCreateMutableCopy(NULL, CFStringGetLength(alertString), alertString);
CFStringFindAndReplace( alertString2,
CFSTR("^2"),
minRange, // another CFString
CFRangeMake(0, CFStringGetLength(alertString2)),
0);
لا تنتمي إلى StackOverflow