iOS 小知识: 汉字转拼音

Ezra iOS

介绍一些 iOS 小知识。

汉字转拼音

@interface NSString (MandarinLatin)
- (NSString *)stringByReplacingMandarinToLatinWithDiacritics:(BOOL)diacritics firstLetterCapitalizes:(BOOL)capitalizes;
@end

@implementation NSString (MandarinLatin)
- (NSString *)stringByReplacingMandarinToLatinWithDiacritics:(BOOL)diacritics firstLetterCapitalizes:(BOOL)capitalizes {
    NSMutableString *original = [NSMutableString stringWithString:self];
    // 转换为带变声符的拼音
    CFStringTransform((CFMutableStringRef)original, NULL, kCFStringTransformMandarinLatin, NO);
    if (!diacritics) {
        // 去除变音符
        CFStringTransform((CFMutableStringRef)original, NULL, kCFStringTransformStripDiacritics, NO);
    }

    if (capitalizes) {
        return [original capitalizedString];
    } else {
        return [original copy];
    }
}
@end