Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions NSStringEmojize/NSString+Emojize.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@

- (NSString *)emojizedString;
+ (NSString *)emojizedStringWithString:(NSString *)text;
- (NSString *)unemojizedString;
+ (NSString *)unemojizedStringWithString:(NSString *)text;
+ (NSDictionary *)emojiAliases;
+ (NSDictionary *)reverseEmojiAliases;

@end
30 changes: 30 additions & 0 deletions NSStringEmojize/NSString+Emojize.m
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,36 @@ + (NSString *)emojizedStringWithString:(NSString *)text
return resultText;
}

- (NSString *)unemojizedString
{
return [NSString unemojizedStringWithString:self];
}

+ (NSString *)unemojizedStringWithString:(NSString *)text
{
NSMutableString *ret = [NSMutableString stringWithString:text];
[[self reverseEmojiAliases] enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
[ret replaceOccurrencesOfString:key withString:obj options:nil range:NSMakeRange(0, ret.length)];
}];
return ret;
}

+ (NSDictionary *)reverseEmojiAliases
{
static NSDictionary *_reverseEmojiAliases;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSMutableDictionary *reverseAliases = [NSMutableDictionary new];
[[self emojiAliases] enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
[reverseAliases setObject:key forKey:obj];
}];

_reverseEmojiAliases = reverseAliases;
});
return _reverseEmojiAliases;
}


+ (NSDictionary *)emojiAliases {
static NSDictionary *_emojiAliases;
static dispatch_once_t onceToken;
Expand Down