The below example should work with Unicode strings but it doesn’t.
CFStringRef aString = CFSTR("one"); // in real life this is an Unicode string
CFStringRef formatString = CFSTR("This is %s example"); // also tried %S but without success
CFStringRef resultString = CFStringCreateWithFormat(NULL, NULL, formatString, aString);
// Here I should have a valid sentence in resultString but the current result is like aString would contain garbage.
Use
%@if you want to include aCFStringRefviaCFStringCreateWithFormat.See the Format Specifiers section of Strings Programming Guide for Core Foundation.
%@is for Objective C objects, ORCFTypeRefobjects (CFStringRefis compatible withCFTypeRef)%sis for a null-terminated array of 8-bit unsigned characters (i.e. normal C strings).%Sis for a null-terminated array of 16-bit Unicode characters.A CFStringRef object is not the same as “a null-terminated array of 16-bit Unicode characters”.