我从互联网上下载了一种字体。现在我要打印该字体的Characterset。我得到了该字体的CFCharacterSetRef。但我不知道如何打印CFCharacterSetRef。这是我的编码。
NSString *fontFilePath=@"/Volumes/Work/Mac/Fonts/FONT FOLDER/AngelicWar";
CFStringRef aCFString = (CFStringRef)fontFilePath;
CTFontRef fontRef = CTFontCreateWithName(aCFString, 0.0,NULL);
CFCharacterSetRef charRef=CTFontCopyCharacterSet (fontRef);
对于打印alphanumericCharacterSet,我会像这样使用。
NSCharacterSet *characterset = [NSCharacterSet alphanumericCharacterSet];
unichar idx;
for( idx = 0; idx < 256; idx++ )
{
if ([characterset characterIsMember: idx])
{
if ( isprint(idx) ) {
NSLog(@"%c",idx);
}
else {
printf( "%02x ", idx);
}
}
}
但我不知道修改此代码以打印该字体的字符集。
答案 0 :(得分:3)
CFCharacterSetRef
和NSCharacterSet *
是免费的桥接,所以你几乎就在那里。将第二个代码段的第一行替换为:
NSCharacterSet *characterset = (NSCharacterSet *) CTFontCopyCharacterSet (fontRef);
......你在那儿。
请记住,NSCharacterSet可以包含Unicode字符(即索引大于256)。根据你在这里要做的事情,这可能也可能不重要。