如何从NSString中删除所有表情符号

时间:2012-03-05 11:51:02

标签: ios5 nsstring emoticons

我需要从NSString中删除所有emoijs。 到目前为止,我正在使用这个NSString扩展...

- (NSString*)noEmoticon {
    static NSMutableCharacterSet *emoij = NULL;

    if (emoij == NULL) {
        emoij = [[NSMutableCharacterSet alloc] init];
        // unicode range of old emoijs
        [emoij removeCharactersInRange:NSMakeRange(0xE000, 0xE537 - 0xE000)];
    }

    NSRange range = [self rangeOfCharacterFromSet:emoij];

    if (range.length == 0) {
        return self;
    }

    NSMutableString *cleanedString = [self mutableCopy];

    while (range.length > 0) {
        [cleanedString deleteCharactersInRange:range];
        range = [cleanedString rangeOfCharacterFromSet:emoij];
    }

    return cleanedString;
}

......但这根本不起作用。 range.length始终为0。 所以一般的问题是:如何从NSString中删除一系列unicode字符?

非常感谢。

1 个答案:

答案 0 :(得分:1)

在我看来,在上面的代码中,emoij变量最终是一个空集。您不是指addCharactersInRange:而不是removeCharactersInRange:吗?