objective-c – Apple Emoji 遍历NSString

objective-c – Apple Emoji 遍历NSString,第1张

概述我想遍历表情符号输入字符串的’字符'(来自UITextField),然后一个接一个地显示那些带有UILabel的表情符号图标. for (int i=0; i < len; i++) { unichar c = [transformedString characterAtIndex:i]; [label setText:[NSString stringWithFormat: 我想遍历表情符号输入字符串的’字符'(来自UITextFIEld),然后一个接一个地显示那些带有UILabel的表情符号图标.

for (int i=0; i < len; i++) {      unichar c = [transformedString characteratIndex:i];      [label setText:[Nsstring stringWithFormat:@"%C",c]];  ...

这适用于ASCII文本但不适用于表情符号字体(除心脏符号外均为空).正如我所注意到的,单个表情符号图标由字符串中的2个字符表示.
据我所知,表情符号使用私有区域unicode字符.

反正有没有实现这个目标?

非常感谢,你让我有些头疼……

解决方法 您可以在Nsstring上使用其中一个枚举*实例方法,并使用选项NsstringEnumerationByComposedCharacterSequences.

- (voID)enumerateSubstringsInRange:(NSRange)range                           options:(NsstringEnumerationoptions)opts                        usingBlock:(voID (^)(Nsstring *substring,NSRange substringRange,NSRange enclosingRange,BOol *stop))block

Nsstring使用UTF-16,它将一些代码点表示为两个16位值.您也可以手动检查字符串中的这些“代理对”并手动组合它们,但是您仍然只能获得代码点而不是字符.

[transformedString    enumerateSubstringsInRange:NSMakeRange(0,[transformedString length]                       options:NsstringEnumerationByComposedCharacterSequences                    usingBlock: ^(Nsstring *substring,NSRange,BOol *){    [label setText:substring];}];
总结

以上是内存溢出为你收集整理的objective-c – Apple Emoji /遍历NSString全部内容,希望文章能够帮你解决objective-c – Apple Emoji /遍历NSString所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1017065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存