So prüfen Sie, ob ein Zeichen von einer Schriftart unterstützt wird

Ich arbeite an einer App mit einem Textfeld. Der in diesem Feld geschriebene Text wird gedruckt, und ich habe ein Problem mit einigen Zeichen wie Emoji, chinesischen Zeichen usw., da die Schriftart diese Zeichen nicht enthält.

Aus diesem Grund möchte ich alle Zeichen einer Schriftart erhalten (die Schriftart wird heruntergeladen, damit ich mich direkt mit der Datei oder einem UIFont-Objekt befassen kann).

Ich habe davon gehörtCTFontGetGlyphsForCharacters Aber ich bin nicht sicher, ob diese Funktion das tut, was ich will und ich kann sie nicht zum Laufen bringen.

Hier ist mein Code:

CTFontRef fontRef = CTFontCreateWithName((CFStringRef)font.fontName, font.pointSize, NULL);
NSString *characters = @""; // emoji character
NSUInteger count = characters.length;
CGGlyph glyphs[count];
if (CTFontGetGlyphsForCharacters(fontRef, (const unichar*)[characters cStringUsingEncoding:NSUTF8StringEncoding], glyphs, count) == false)
    NSLog(@"CTFontGetGlyphsForCharacters failed.");

HierCTFontGetGlyphsForCharacters Rückkehrfalsch. Es ist das, was ich will, weil das Zeichen '' nicht von der verwendeten Schriftart bereitgestellt wird.
Das Problem ist, wenn ich ersetzeNSString *characters = @"" durchNSString *characters = @"abc", CTFontGetGlyphsForCharacters kehre wieder zurückfalsch. Offensichtlich enthält meine Schriftart eine Glyphe für alle ASCII-Zeichen.