NIMPinyinConverter.m 1.1 KB

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