objective-c – Apple Emoji /遍历NSString
发布时间:2020-12-14 17:46:05 所属栏目:百科 来源:网络整理
导读:我想遍历表情符号输入字符串的’字符'(来自UITextField),然后一个接一个地显示那些带有UILabel的表情符号图标. for (int i=0; i len; i++) { unichar c = [transformedString characterAtIndex:i]; [label setText:[NSString stringWithFormat:@"%C",c]]; ..
我想遍历表情符号输入字符串的’字符'(来自UITextField),然后一个接一个地显示那些带有UILabel的表情符号图标.
for (int i=0; i < len; i++) { unichar c = [transformedString characterAtIndex:i]; [label setText:[NSString stringWithFormat:@"%C",c]]; ... 这适用于ASCII文本但不适用于表情符号字体(除心脏符号外均为空).正如我所注意到的,单个表情符号图标由字符串中的2个字符表示. 反正有没有实现这个目标? 非常感谢,你让我有些头疼…… 解决方法
您可以在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]; }]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- react-router-redux与手动传入react-router方法的探讨
- 基于DDD的现代ASP.NET开发框架--ABP系列之19、ABP应用层——
- c# – ASP.NET使用身份验证标头将JSON数据发布到HTTP API
- xml – 使用XPath启动或包含功能来搜索Windows事件日志
- 无法从’const char [3]’转换为’char *’x100000(Qt Crea
- ajax 跨域
- ruby-on-rails – 如何摆脱Spring警告:运行`gem pristine
- 正则表达式
- C# networkcomms 3.0实现模拟登陆总结
- Ruby Sinatra – 在mongoHQ上连接到mongoDB失败了