NSString+ex.m 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. //
  2. // NSString+ex.m
  3. // test1107
  4. //
  5. // Created by apple on 15/11/7./Users/apple/Desktop/jiaPei/jiaPei/NSString+ex.m
  6. // Copyright (c) 2015年 JCZ. All rights reserved.
  7. //
  8. #import "NSString+ex.h"
  9. #define xmlRetError @"ERROR:not found <ns:return></ns:return>"
  10. @implementation NSString(ex)
  11. -(NSString* )getXlmRet
  12. {
  13. NSMutableString* mstr = [NSMutableString stringWithString:self];
  14. NSRange substr = [mstr rangeOfString:@"<ns:return>"];
  15. NSRange substr2 = [mstr rangeOfString:@"</ns:return>"];
  16. if (substr.location == NSNotFound || substr2.location == NSNotFound) {
  17. return xmlRetError;
  18. }
  19. NSString *result = [mstr substringWithRange:NSMakeRange(substr.location + substr.length, substr2.location - substr.location - substr.length)];
  20. return result;
  21. }
  22. -(NSString*)getCode{
  23. if (![self getXlmRet]) {
  24. return nil;
  25. }
  26. NSDictionary* root = [self jsonObject];
  27. return root[@"code"];
  28. }
  29. -(id)jsonObject
  30. {
  31. NSString* ret = [self getXlmRet];
  32. if (!ret)
  33. {
  34. return nil;
  35. }
  36. //options --dansonpro
  37. NSData* jsonData = [ret dataUsingEncoding:NSUTF8StringEncoding];
  38. NSDictionary* json = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
  39. return json;
  40. }
  41. - (NSString *)md5Encrypt
  42. {
  43. const char *cStr = [self UTF8String];
  44. unsigned char result[16];
  45. CC_MD5( cStr, (unsigned int)strlen(cStr), result );
  46. NSString* str = [NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
  47. result[0], result[1], result[2], result[3],
  48. result[4], result[5], result[6], result[7],
  49. result[8], result[9], result[10], result[11],
  50. result[12], result[13], result[14], result[15]
  51. ];
  52. str = [self toLower:str];
  53. return str;
  54. }
  55. -(NSString *)toLower:(NSString *)str
  56. {
  57. for (NSInteger i=0; i<str.length; i++) {
  58. if ([str characterAtIndex:i]>='A'&[str characterAtIndex:i]<='Z') {
  59. //A对应ASCII码的65 a对应ASCII码的97
  60. //大写换小写 ASCII编码 --Danson
  61. char temp=[str characterAtIndex:i]+32;
  62. NSRange range=NSMakeRange(i, 1);
  63. str=[str stringByReplacingCharactersInRange:range withString:[NSString stringWithFormat:@"%c",temp]];
  64. }
  65. }
  66. return str;
  67. }
  68. -(NSString *)toHighterWithLower:(NSString *)str
  69. {
  70. for (NSInteger i=0; i<str.length; i++) {
  71. if ([str characterAtIndex:i]>='a'&[str characterAtIndex:i]<='z') {
  72. //A对应ASCII码的65 a对应ASCII码的97
  73. //小写换大写 ASCII编码 --Danson
  74. char temp=[str characterAtIndex:i]-32;
  75. NSRange range=NSMakeRange(i, 1);
  76. str=[str stringByReplacingCharactersInRange:range withString:[NSString stringWithFormat:@"%c",temp]];
  77. }
  78. }
  79. return str;
  80. }
  81. -(CGFloat)heightForWid:(CGFloat)wid Font:(CGFloat)fontSize
  82. {
  83. if (self.length < 1) {
  84. return 20.0;
  85. }
  86. return [self boundingRectWithSize:CGSizeMake(wid, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: [UIFont scaleSize:fontSize]} context:nil].size.height;
  87. }
  88. -(CGSize)sizeForFont:(CGFloat)fontSize
  89. {
  90. if (self.length < 1) {
  91. return CGSizeMake(20, 20);
  92. }
  93. return [self boundingRectWithSize:CGSizeMake(MAXFLOAT, 20) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: [UIFont scaleSize:fontSize]} context:nil].size;
  94. }
  95. -(NSString*)base64
  96. {
  97. NSString* path = [[NSBundle mainBundle] pathForResource:self ofType:nil];
  98. UIImage *_originImage = [UIImage imageNamed:path];
  99. NSData *_data = UIImagePNGRepresentation(_originImage);
  100. NSString *_encodedImageStr = [_data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
  101. return _encodedImageStr;
  102. }
  103. /**
  104. Base64字符串转UIImage图片:、
  105. //UIImage图片转成Base64字符串:
  106. UIImage *originImage = [UIImage imageNamed:@"originImage.png"];
  107. NSData *data = UIImageJPEGRepresentation(originImage, 1.0f);
  108. NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
  109. //Base64字符串转UIImage图片:
  110. NSData *decodedImageData = [[NSData alloc]
  111. initWithBase64EncodedString:encodedImageStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
  112. UIImage *decodedImage = [UIImage imageWithData:decodedImageData];
  113. */
  114. @end
  115. @implementation NSDictionary (Log)
  116. - (NSString *)descriptionWithLocale:(id)locale
  117. {
  118. NSMutableString *str = [NSMutableString string];
  119. [str appendString:@"{\n"];
  120. //遍历字典的所有键值对
  121. [self enumerateKeysAndObjectsUsingBlock:^(id key,id obj, BOOL *stop) {
  122. [str appendFormat:@"\t%@ = %@,\n", key, obj];
  123. }];
  124. [str appendString:@"}"];
  125. //查出最后一个,的范围
  126. NSRange range = [str rangeOfString:@","options:NSBackwardsSearch];
  127. if (range.length) {
  128. // 删掉最后一个,
  129. [str deleteCharactersInRange:range];
  130. }
  131. return str;
  132. }
  133. @end
  134. @implementation NSArray (Log)
  135. - (NSString *)descriptionWithLocale:(id)locale
  136. {
  137. NSMutableString *str = [NSMutableString string];
  138. [str appendString:@"[\n"];
  139. //遍历数组的所有元素
  140. [self enumerateObjectsUsingBlock:^(id obj,NSUInteger idx, BOOL *stop) {
  141. [str appendFormat:@"%@,\n", obj];
  142. }];
  143. [str appendString:@"]"];
  144. //查出最后一个,的范围
  145. NSRange range = [str rangeOfString:@","options:NSBackwardsSearch];
  146. if (range.length) {
  147. // 删掉最后一个,
  148. [str deleteCharactersInRange:range];
  149. }
  150. return str;
  151. }
  152. @end