NSString+NTES.m 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // NSString+NTES.m
  3. // NIMDemo
  4. //
  5. // Created by chris on 15/2/12.
  6. // Copyright (c) 2015年 Netease. All rights reserved.
  7. //
  8. #import "NSString+NTES.h"
  9. #import <CommonCrypto/CommonDigest.h>
  10. @implementation NSString (NTES)
  11. - (CGSize)stringSizeWithFont:(UIFont *)font{
  12. return [self sizeWithAttributes:@{NSFontAttributeName:font}];
  13. }
  14. - (NSString *)MD5String {
  15. const char *cstr = [self UTF8String];
  16. unsigned char result[16];
  17. CC_MD5(cstr, (CC_LONG)strlen(cstr), result);
  18. return [NSString stringWithFormat:
  19. @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
  20. result[0], result[1], result[2], result[3],
  21. result[4], result[5], result[6], result[7],
  22. result[8], result[9], result[10], result[11],
  23. result[12], result[13], result[14], result[15]
  24. ];
  25. }
  26. - (NSUInteger)getBytesLength
  27. {
  28. NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
  29. return [self lengthOfBytesUsingEncoding:enc];
  30. }
  31. - (NSString *)stringByDeletingPictureResolution{
  32. NSString *doubleResolution = @"@2x";
  33. NSString *tribleResolution = @"@3x";
  34. NSString *fileName = self.stringByDeletingPathExtension;
  35. NSString *res = [self copy];
  36. if ([fileName hasSuffix:doubleResolution] || [fileName hasSuffix:tribleResolution]) {
  37. res = [fileName substringToIndex:fileName.length - 3];
  38. if (self.pathExtension.length) {
  39. res = [res stringByAppendingPathExtension:self.pathExtension];
  40. }
  41. }
  42. return res;
  43. }
  44. - (NSString *)tokenByPassword
  45. {
  46. //demo直接使用username作为account,md5(password)作为token
  47. //接入应用开发需要根据自己的实际情况来获取 account和token
  48. return [[NIMSDK sharedSDK] isUsingDemoAppKey] ? [self MD5String] : self;
  49. }
  50. @end