// // NSString+Category.m // 乐销 // // Created by 刘惠萍 on 2017/3/25. // Copyright © 2017年 ping. All rights reserved. // #import "NSString+Category.h" @implementation NSString (Category) //运行时 安全 + (void)load{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ method_exchangeImplementations(class_getInstanceMethod(self, @selector(substringToIndex:)), class_getInstanceMethod(self, @selector(sldSubstringToIndex:))); method_exchangeImplementations(class_getClassMethod(self, @selector(substringFromIndex:)), class_getClassMethod(self, @selector(sldSubstringFromIndex:))); }); } - (NSString *)sldSubstringToIndex:(NSUInteger)to{ if (self.length= num) { return [string substringToIndex:num]; }else{ return string; } return @""; } //has string in self - (BOOL)hasString:(NSString *)str{ if (!isStr(str)) return false; NSRange range = [self rangeOfString:str]; return range.location != NSNotFound; } //获取高度 - (CGFloat)fetchHeightWidthLimint:(CGFloat)width fontNum:(CGFloat)fontNum lineSpace:(CGFloat)lineSpace{ //fetch height UIFont * font = [UIFont systemFontOfSize:fontNum]; CGRect frame = [self boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:lineSpace?@{NSParagraphStyleAttributeName:[NSMutableParagraphStyle initWithLineSpace:lineSpace],NSFontAttributeName:font}:@{NSFontAttributeName:font} context:nil]; //如果只有一行 if (lineSpace && CGRectGetHeight(frame) == font.lineHeight + lineSpace) { return font.lineHeight; } return CGRectGetHeight(frame); } #pragma mark - Base64编码 - (NSString *)base64Encode { //先将string转换成data NSData *data = [self dataUsingEncoding:NSUTF8StringEncoding]; NSData *base64Data = [data base64EncodedDataWithOptions:0]; NSString *baseString = [[NSString alloc]initWithData:base64Data encoding:NSUTF8StringEncoding]; return baseString; } #pragma mark - Base64解码 - (NSString *)base64Decode { NSData *data = [[NSData alloc]initWithBase64EncodedString:self options:NSDataBase64DecodingIgnoreUnknownCharacters]; NSString *string = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; return string; } @end