Как проверить, поддерживается ли символ шрифтом

Я работаю над приложением с текстовым полем. Текст, написанный в этом поле, будет напечатан, и у меня возникла проблема с некоторыми символами, такими как эмодзи, китайские символы и т. Д., Поскольку шрифт не содержит этих символов.

Вот почему я хочу получить все символы, предоставляемые шрифтом (шрифт загружен, поэтому я могу иметь дело непосредственно с файлом или с объектом UIFont).

Я слышал оCTFontGetGlyphsForCharacters но я не уверен, что эта функция делает то, что я хочу, и я не могу заставить ее работать.

Вот мой код:

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.");

ВотCTFontGetGlyphsForCharacters вернутьложный, Это то, что я хочу, потому что символ '' не предоставлен используемым шрифтом.
Проблема в том, когда я заменяюNSString *characters = @"" отNSString *characters = @"abc", CTFontGetGlyphsForCharacters вернуться сноваложный, Очевидно, мой шрифт обеспечивает глиф для всех символов ASCII.

Ответы на вопрос(1)

Ваш ответ на вопрос