Как я могу удалить все смайлики из NSString - PullRequest
0 голосов
/ 05 марта 2012

Мне нужно удалить все эмоции из строки NSString. Пока я использую это расширение 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?

Большое спасибо.

1 Ответ

1 голос
/ 02 мая 2012

Мне кажется, что в приведенном выше коде переменная emoij в конечном итоге является пустым набором.Разве вы не хотели addCharactersInRange:, а не removeCharactersInRange:?

...