123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- //
- // 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<to) {
- return @"";
- }
- return [self sldSubstringToIndex:to];
- }
- - (NSString *)sldSubstringFromIndex:(NSUInteger)to{
- if (self.length<to) {
- return @"";
- }
- return [self sldSubstringFromIndex:to];
- }
- + (NSNumber * (^)(NSString *))num{
- return ^(NSString *num){
- if (isStr(num)) {
- if ([num doubleValue]) {
- return [NSNumber numberWithDouble:[num doubleValue]];
- }
- }
- return @0;
- };
- }
- + (NSString * (^)(NSNumber *))str{
- return ^(NSNumber *num){
- if (isNum(num)) {
- return [NSString stringWithFormat:@"%@",num];
- }
- return @"";
- };
- }
- + (NSString * (^)(double))price{
- return ^(double num){
- return [NSString stringWithFormat:@"%.2f",num];
- };
- }
- + (NSString * (^)(double))dou{
- return ^(double num){
- return [NSString stringWithFormat:@"%@",[NSNumber numberWithDouble:num]];
- };
- }
- - (NSString *)smallImage{
- return self.smallImageCustomSize(200);
- }
- - (NSString *)middleImage{
- return self.smallImageCustomSize(400);
- }
- //全部有效
- + (BOOL)isAllValid:(NSArray *)aryStrs{
- if (!isAry(aryStrs)) {
- return false;
- }
- for (NSString * strItem in aryStrs) {
- if (!isStr(strItem)) {
- return false;
- }
- }
- return true;
- }
- //有一个有效
- + (BOOL)isHasOneValid:(NSArray *)aryStrs{
- for (NSString * strItem in aryStrs) {
- if (isStr(strItem)) {
- return true;
- }
- }
- return false;
- }
- //截取字符串
- + (NSString *)subStr:(NSString *)string num:(NSInteger)num{
- if (!isStr(string)) {
- return @"";
- }
- if (string.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
|