表情符号不被显示,奇怪的字符代替

我试图在CoreText显示表情符号(ascii#55357),这是我得到:

在这里输入图像说明

它显示了其中的两个字符,并在中间插入光标。 我不打算包括我的CoreText代码,因为它是如此混乱,我不知道错误是从哪里来的,但是我只是好奇,有没有人在iOS的任何一个方面看过同样的问题,什么是这些黑色和白色的字符中显示的A的含义? 这是否意味着无效的字符或什么? 只是寻找一些关于如何解决这个问题的提示。

问题是,我没有意识到表情符号的长度是2而不是像大多数其他字符一样。 那么是什么原因造成的问题是,我将属性添加到我的NSMutableAttributedString长度为1而不是2.当我将其更改为2它修复了它:

 [self.text addAttributes: attributes range:NSMakeRange(self.cursor.position, 2 /* not 1 */)]