Le 4 mars 08 à 11:21, Stephane Sudre a écrit :


On 4 mars 08, at 10:28, Julien Jalon wrote:

1) Might not be a good idea to use CFStringGetCStringPtr as it might return
NULL2) kCFStringEncodingMacRoman is likely not a good choice as the
encoding, especially for localized strings

If I were you, I'd do something like (warning: Mail compiled code):
const char* MyGetLocalizedCString(CFStringRef string)
{
   // if you need to be thread safe, add proper locks around that
   static CFMutableDictionaryRef mapping = NULL;
   if(mapping == NULL) {
       mapping = CFDictionaryCreateMutable(NULL, 0,
&kCFTypeDictionaryKeyCallBacks, NULL);
   }

   const char* result = (const char *)CFDictionaryGetValue(mapping,
string);
   if(result == NULL) {
CFStringRef localizedString = CFCopyLocalizedStringFromTable(string,
CFSTR("LibraryLocalizable"), NULL);
        result = (const char
*)malloc (CFStringGetMaximumSizeForEncoding (CFStringGetLength(localizedString),
kCFStringEncodingUTF8);
CFStringGetCString(localizedString, (char *)result, bufferSize,
kCFStringEncodingUTF8);
CFDictionarySetValue(mapping, string, result);

I'm not sure CFDictionarySetValue would accept a char *.

It accepts whatever you want. You just have to set the corresponding callback when you create it. As you can see here, this sample use NULL as Value CallBack, so it perfectly valid to set a char *.



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to