欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS中判斷Emoji表情問題

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

先給大家說下問題描述

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

解決方案

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

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

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

@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表情問題,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

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

    iOS9提示框的正確使用方式

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

    IOS圖片無限輪播器的實(shí)現(xiàn)原理

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

    IOS內(nèi)存泄漏檢查方法及重寫MLeakFinder

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

    iOS動(dòng)畫案例(1) 類似于qq賬號(hào)信息里的一個(gè)動(dòng)畫效果

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

    iOS 標(biāo)簽Tag列表的實(shí)現(xiàn)代碼

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

    iOS自帶原生二維碼掃描的實(shí)現(xiàn)

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

    iOS10適配問題收集整理

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

    iOS?button響應(yīng)流程圖文詳解

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

    iOS開發(fā)之清除緩存功能的實(shí)現(xiàn)

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

    iOS如何自定義步驟進(jìn)度條實(shí)例詳解

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

最新評(píng)論