NTESPinyinConverter.m 932 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. //
  2. // NTESPinyinConverter.m
  3. // NIM
  4. //
  5. // Created by amao on 10/15/13.
  6. // Copyright (c) 2013 Netease. All rights reserved.
  7. //
  8. #import "NTESPinyinConverter.h"
  9. @implementation NTESPinyinConverter
  10. + (NTESPinyinConverter *)sharedInstance
  11. {
  12. static NTESPinyinConverter *instance = nil;
  13. static dispatch_once_t onceToken;
  14. dispatch_once(&onceToken, ^{
  15. instance = [[NTESPinyinConverter alloc] init];
  16. });
  17. return instance;
  18. }
  19. - (NSString *)toPinyin: (NSString *)source
  20. {
  21. if ([source length] == 0)
  22. {
  23. return nil;
  24. }
  25. NSMutableString *piyin = [NSMutableString stringWithString:source];
  26. CFStringTransform((__bridge CFMutableStringRef)piyin, NULL, kCFStringTransformToLatin, false);
  27. NSString *py = [piyin stringByFoldingWithOptions:NSDiacriticInsensitiveSearch locale:[NSLocale currentLocale]];
  28. return [py stringByReplacingOccurrencesOfString:@"'" withString:@""];
  29. }
  30. @end