2012-03-05 92 views
0

我需要從NSString中刪除所有emojs。 到目前爲止,我用這NSString的擴展...如何從NSString中刪除所有emojs

- (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

在我看來,在上面的代碼中,emoij變量最終是一個空集。您是不是要addCharactersInRange:而不是removeCharactersInRange: