NSString+ex.m 5.3 KB

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