亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

iOS中判斷Emoji表情問題

 更新時間:2016年06月27日 10:06:25   作者:歐陽劍心  
在項目中遇到ios判斷emoji表情的問題,下面小編把我的解決方案分享到腳本之家平臺供大家參考

先給大家說下問題描述

服務器端不支持Emoji表情,因此客戶端在上傳用戶輸入時,不能包含Emoji表情。

解決方案

在客戶端發(fā)送請求前,判斷用戶輸入中是否含有表情,如果含有表情,則提示用戶重新輸入。這個過程關鍵是如何判斷字符串中是否含有Emoji表情。要判斷是否含有Emoji表情,必須先了解什么是Emoji。

Emoji 是一套起源于日本的12x12像素表情符號,由栗田穣崇(Shigetaka Kurit)創(chuàng)作,最早在日本網絡及手機用戶中流行,自蘋果公司發(fā)布的iOS 5輸入法中加入了emoji后,這種表情符號開始席卷全球,目前emoji已被大多數現代計算機系統(tǒng)所兼容的Unicode編碼采納,普遍應用于各種手機短信和社交網絡中。

以上是摘自百度百科里的一段話,Emoji表情最終會被編碼成Unicode,因此,只要知道Emoji表情的Unicode編碼的范圍,就可以判斷用戶是否輸入了Emoji表情。以下是具體代碼,我這里寫成了NSString的一個分類

@implementation NSString (Emoji)
+ (BOOL)stringContainsEmoji:(NSString *)string
{
__block BOOL returnValue = NO;
[string enumerateSubstringsInRange:NSMakeRange(0, [string length]) 
options:NSStringEnumerationByComposedCharacterSequences 
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
const unichar hs = [substring characterAtIndex:0];
if (0xd800 <= hs && hs <= 0xdbff) {
if (substring.length > 1) {
const unichar ls = [substring characterAtIndex:1];
const int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
if (0x1d000 <= uc && uc <= 0x1f77f) {
returnValue = YES;
}
}
} else if (substring.length > 1) {
const unichar ls = [substring characterAtIndex:1];
if (ls == 0x20e3) {
returnValue = YES;
}
} else {
if (0x2100 <= hs && hs <= 0x27ff) {
returnValue = YES;
} else if (0x2B05 <= hs && hs <= 0x2b07) {
returnValue = YES;
} else if (0x2934 <= hs && hs <= 0x2935) {
returnValue = YES;
} else if (0x3297 <= hs && hs <= 0x3299) {
returnValue = YES;
} else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || hs == 0x2b50) {
returnValue = YES;
}
}
}];
return returnValue;
}

本段代碼親測管用,歡迎大家參考。

以上所述是小編給大家介紹的iOS中判斷Emoji表情問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • iOS9提示框的正確使用方式

    iOS9提示框的正確使用方式

    這篇文章主要為大家詳細介紹了iOS9提示框的正確使用方式,iOS8升級到iOS9的過程,彈出提示框的方式有了很大的改變,感興趣的小伙伴們可以參考一下
    2016-05-05
  • IOS圖片無限輪播器的實現原理

    IOS圖片無限輪播器的實現原理

    這篇文章主要介紹了IOS圖片無限輪播器的實現原理的相關資料,需要的朋友可以參考下
    2016-03-03
  • IOS內存泄漏檢查方法及重寫MLeakFinder

    IOS內存泄漏檢查方法及重寫MLeakFinder

    這篇文章主要介紹了IOS內存泄漏檢查方法及如何重寫MLeakFinder,幫助ios開發(fā)者維護自身程序,感興趣的朋友可以了解下
    2021-04-04
  • iOS動畫案例(1) 類似于qq賬號信息里的一個動畫效果

    iOS動畫案例(1) 類似于qq賬號信息里的一個動畫效果

    做一個類似于qq賬號信息里的一個動畫,感覺挺有意思,下面給大家分享iOS動畫案例(1) 類似于qq賬號信息里的一個動畫效果,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-01-01
  • iOS 標簽Tag列表的實現代碼

    iOS 標簽Tag列表的實現代碼

    這篇文章主要介紹了本篇文章主要介紹了iOS 標簽Tag列表的實現代碼,非常具有實用價值,需要的朋友可以參考下
    2017-04-04
  • iOS自帶原生二維碼掃描的實現

    iOS自帶原生二維碼掃描的實現

    最近項目中需要做一個二維碼掃描,雖然有很多二維碼掃描的第三方可以用,但是考慮到項目中的需要,所以我放棄了使用三方庫,而采用了蘋果原生的掃描。下面這篇文章就介紹了iOS自帶原生二維碼掃描的實現,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • iOS10適配問題收集整理

    iOS10適配問題收集整理

    本文是小編給大家收集整理些有關iOS10適配問題的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • iOS?button響應流程圖文詳解

    iOS?button響應流程圖文詳解

    這篇文章主要為大家介紹了iOS?button響應流程圖文詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • iOS開發(fā)之清除緩存功能的實現

    iOS開發(fā)之清除緩存功能的實現

    現在的絕大多數應用中都存在著清楚緩存的功能,形形色色,各有千秋,所以小編現為大家介紹一種最基礎的清除緩存的方法,有需要的可以參考借鑒。下面來一起看看吧。
    2016-09-09
  • iOS如何自定義步驟進度條實例詳解

    iOS如何自定義步驟進度條實例詳解

    這篇文章主要給大家介紹了關于iOS如何自定義步驟進度條的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11

最新評論