From 3e8437ae559487362fae3525beb79c534c213a51 Mon Sep 17 00:00:00 2001 From: 单军华 Date: Thu, 12 Jul 2018 13:44:34 +0800 Subject: [PATCH] bug修复和功能优化 --- screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Util/Emoji/EaseEmoji.m | 71 +++++++++++++++++++++++++++++++++++ 1 files changed, 71 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Util/Emoji/EaseEmoji.m b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Util/Emoji/EaseEmoji.m new file mode 100755 index 0000000..b27819e --- /dev/null +++ b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Util/Emoji/EaseEmoji.m @@ -0,0 +1,71 @@ +/************************************************************ + * * Hyphenate CONFIDENTIAL + * __________________ + * Copyright (C) 2016 Hyphenate Inc. All rights reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Hyphenate Inc. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Hyphenate Inc. + */ + +#import "EaseEmoji.h" +#import "EaseEmojiEmoticons.h" + + +@implementation EaseEmoji + ++ (NSString *)emojiWithCode:(int)code +{ + int sym = EMOJI_CODE_TO_SYMBOL(code); + return [[NSString alloc] initWithBytes:&sym length:sizeof(sym) encoding:NSUTF8StringEncoding]; +} + ++ (NSArray *)allEmoji +{ + NSMutableArray *array = [NSMutableArray new]; + [array addObjectsFromArray:[EaseEmojiEmoticons allEmoticons]]; + return array; +} + ++ (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; +} + +@end -- Gitblit v1.8.0