// // NSString+HMEmoji.m // 表情键盘 // // Created by 刘凡 on 16/3/4. // Copyright © 2016年 itcast. All rights reserved. // #import "NSString+HMEmoji.h" #define EmojiCodeToSymbol(c) ((((0x808080F0 | (c & 0x3F000) >> 4) | (c & 0xFC0) << 10) | (c & 0x1C0000) << 18) | (c & 0x3F) << 24) @implementation NSString (HMEmoji) + (NSString *)hm_emojiWithIntCode:(unsigned int)intCode { unsigned int symbol = EmojiCodeToSymbol(intCode); NSString *string = [[NSString alloc] initWithBytes:&symbol length:sizeof(symbol) encoding:NSUTF8StringEncoding]; if (string == nil) { string = [NSString stringWithFormat:@"%C", (unichar)intCode]; } return string; } + (NSString *)hm_emojiWithStringCode:(NSString *)stringCode { NSScanner *scanner = [[NSScanner alloc] initWithString:stringCode]; unsigned int intCode = 0; [scanner scanHexInt:&intCode]; return [self hm_emojiWithIntCode:intCode]; } - (NSString *)hm_emoji { return [NSString hm_emojiWithStringCode:self]; } @end