//
// NSString+ex.m
// test1107
//
// Created by apple on 15/11/7./Users/apple/Desktop/jiaPei/jiaPei/NSString+ex.m
// Copyright (c) 2015年 JCZ. All rights reserved.
//
#import "NSString+ex.h"
#define xmlRetError @"ERROR:not found "
@implementation NSString(ex)
-(NSString* )getXlmRet
{
NSMutableString* mstr = [NSMutableString stringWithString:self];
NSRange substr = [mstr rangeOfString:@""];
NSRange substr2 = [mstr rangeOfString:@""];
if (substr.location == NSNotFound || substr2.location == NSNotFound) {
return xmlRetError;
}
NSString *result = [mstr substringWithRange:NSMakeRange(substr.location + substr.length, substr2.location - substr.location - substr.length)];
return result;
}
-(NSString*)getCode{
if (![self getXlmRet]) {
return nil;
}
NSDictionary* root = [self jsonObject];
return root[@"code"];
}
-(id)jsonObject
{
NSString* ret = [self getXlmRet];
if (!ret)
{
return nil;
}
//options --dansonpro
NSData* jsonData = [ret dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
return json;
}
- (NSString *)md5Encrypt
{
const char *cStr = [self UTF8String];
unsigned char result[16];
CC_MD5( cStr, (unsigned int)strlen(cStr), result );
NSString* str = [NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
str = [self toLower:str];
return str;
}
-(NSString *)toLower:(NSString *)str
{
for (NSInteger i=0; i='A'&[str characterAtIndex:i]<='Z') {
//A对应ASCII码的65 a对应ASCII码的97
//大写换小写 ASCII编码 --Danson
char temp=[str characterAtIndex:i]+32;
NSRange range=NSMakeRange(i, 1);
str=[str stringByReplacingCharactersInRange:range withString:[NSString stringWithFormat:@"%c",temp]];
}
}
return str;
}
-(NSString *)toHighterWithLower:(NSString *)str
{
for (NSInteger i=0; i='a'&[str characterAtIndex:i]<='z') {
//A对应ASCII码的65 a对应ASCII码的97
//小写换大写 ASCII编码 --Danson
char temp=[str characterAtIndex:i]-32;
NSRange range=NSMakeRange(i, 1);
str=[str stringByReplacingCharactersInRange:range withString:[NSString stringWithFormat:@"%c",temp]];
}
}
return str;
}
-(CGFloat)heightForWid:(CGFloat)wid Font:(CGFloat)fontSize
{
if (self.length < 1) {
return 20.0;
}
return [self boundingRectWithSize:CGSizeMake(wid, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: [UIFont scaleSize:fontSize]} context:nil].size.height;
}
-(CGSize)sizeForFont:(CGFloat)fontSize
{
if (self.length < 1) {
return CGSizeMake(20, 20);
}
return [self boundingRectWithSize:CGSizeMake(MAXFLOAT, 20) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: [UIFont scaleSize:fontSize]} context:nil].size;
}
-(NSString*)base64
{
NSString* path = [[NSBundle mainBundle] pathForResource:self ofType:nil];
UIImage *_originImage = [UIImage imageNamed:path];
NSData *_data = UIImagePNGRepresentation(_originImage);
NSString *_encodedImageStr = [_data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
return _encodedImageStr;
}
/**
Base64字符串转UIImage图片:、
//UIImage图片转成Base64字符串:
UIImage *originImage = [UIImage imageNamed:@"originImage.png"];
NSData *data = UIImageJPEGRepresentation(originImage, 1.0f);
NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
//Base64字符串转UIImage图片:
NSData *decodedImageData = [[NSData alloc]
initWithBase64EncodedString:encodedImageStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
UIImage *decodedImage = [UIImage imageWithData:decodedImageData];
*/
@end
@implementation NSDictionary (Log)
- (NSString *)descriptionWithLocale:(id)locale
{
NSMutableString *str = [NSMutableString string];
[str appendString:@"{\n"];
//遍历字典的所有键值对
[self enumerateKeysAndObjectsUsingBlock:^(id key,id obj, BOOL *stop) {
[str appendFormat:@"\t%@ = %@,\n", key, obj];
}];
[str appendString:@"}"];
//查出最后一个,的范围
NSRange range = [str rangeOfString:@","options:NSBackwardsSearch];
if (range.length) {
// 删掉最后一个,
[str deleteCharactersInRange:range];
}
return str;
}
@end
@implementation NSArray (Log)
- (NSString *)descriptionWithLocale:(id)locale
{
NSMutableString *str = [NSMutableString string];
[str appendString:@"[\n"];
//遍历数组的所有元素
[self enumerateObjectsUsingBlock:^(id obj,NSUInteger idx, BOOL *stop) {
[str appendFormat:@"%@,\n", obj];
}];
[str appendString:@"]"];
//查出最后一个,的范围
NSRange range = [str rangeOfString:@","options:NSBackwardsSearch];
if (range.length) {
// 删掉最后一个,
[str deleteCharactersInRange:range];
}
return str;
}
@end