zjf
2023-03-06 392b76515f40376b6d36f40a114850ef63650384
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
//
//  NSString+PBCategory.m
//  ProBIM
//
//  Created by zjf on 2017/10/19.
//  Copyright © 2017年 ProBIM. All rights reserved.
//
 
#import "NSString+PBCategory.h"
#import <CommonCrypto/CommonDigest.h>
@implementation NSString (PBCategory)
+ (NSString *)convertToJson:(NSDictionary *)dict {
    NSError *parseError = nil;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&parseError];
    return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
+ (NSString *)arrConvertToJson:(NSArray *)arr {
    NSError *error = nil;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:&error];
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    return jsonString;
}
+ (id)convertTodictionaryOrArr:(NSString *)jsonStr {
    if (jsonStr == nil || [jsonStr isEqualToString:@""]) {
        return nil;
    }
    NSData *jsonData = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];
    NSError *error = nil;
    id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData
                                                    options:NSJSONReadingAllowFragments
                                                      error:nil];
    
    if (jsonObject != nil && error == nil){
        return jsonObject;
    }else{
        // 解析错误
        return nil;
    }
}
 
//+ (NSString *)getSandboxUserID {
//    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//    NSString *documents = [array lastObject];
//    NSString *documentPath = [documents stringByAppendingPathComponent:@"dic.plist"];
//    NSDictionary *resultDic = [NSDictionary dictionaryWithContentsOfFile:documentPath];
//    return [resultDic valueForKey:@"UserId"];
//}
//+ (NSString *)getSandboxAccount {
//    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//    NSString *documents = [array lastObject];
//    NSString *documentPath = [documents stringByAppendingPathComponent:@"dictt.plist"];
//    NSDictionary *resultDic = [NSDictionary dictionaryWithContentsOfFile:documentPath];
//    return [resultDic valueForKey:@"Account"];
//}
 
//+ (NSString *)getSandboxRealName {
//    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//    NSString *documents = [array lastObject];
//    NSString *documentPath = [documents stringByAppendingPathComponent:@"dict.plist"];
//    NSDictionary *resultDic = [NSDictionary dictionaryWithContentsOfFile:documentPath];
//    return [resultDic valueForKey:@"RealName"];
//}
+ (NSString *)getUniqueStrByUUID {
    CFUUIDRef    uuidObj = CFUUIDCreate(nil);//create a new UUID
    NSString    *uuidString = (__bridge_transfer NSString *)CFUUIDCreateString(nil, uuidObj);
    CFRelease(uuidObj);
    return uuidString ;
}
+ (UIImage *)imageDecoding:(NSString *)str {
    //Base64字符串转UIImage图片:
    NSData *decodedImageData = [[NSData alloc]
                                initWithBase64EncodedString:str options:NSDataBase64DecodingIgnoreUnknownCharacters];
    
    UIImage *decodedImage = [UIImage imageWithData:decodedImageData];
    return decodedImage;
}
 
+ (NSString *)imagebase64:(UIImage *)image {
    NSData *data = UIImageJPEGRepresentation(image,0.5);
    NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
    return encodedImageStr;
 
}
+ (NSString *)md5Encryption:(NSString *)str {
    const char *cStr = [str UTF8String];
    unsigned char digest[CC_MD5_DIGEST_LENGTH];
    CC_MD5( cStr, strlen(cStr), digest ); // This is the md5 call
    NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
        [output appendFormat:@"%02x", digest[i]];
    return  output;
}
+(NSDictionary *)getLoginData {
    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documents = [array lastObject];
    NSString *documentPath = [documents stringByAppendingPathComponent:@"login.plist"];
    NSDictionary *resultDic = [NSDictionary dictionaryWithContentsOfFile:documentPath];
    return resultDic;
}
+ (NSDictionary *)getApiData {
    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documents = [array lastObject];
    NSString *documentPath = [documents stringByAppendingPathComponent:@"api.plist"];
    NSDictionary *resultDic = [NSDictionary dictionaryWithContentsOfFile:documentPath];
    return resultDic;
}
+ (NSArray *)getApiArrData {
    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documents = [array lastObject];
    NSString *documentPath = [documents stringByAppendingPathComponent:@"apiArr.plist"];
    NSArray *arr = [NSArray arrayWithContentsOfFile:documentPath];
    return arr;
}
+ (NSString *)getToken {
    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documents = [array lastObject];
    NSString *documentPath = [documents stringByAppendingPathComponent:@"token.plist"];
    NSDictionary *resultDic = [NSDictionary dictionaryWithContentsOfFile:documentPath];
    return [resultDic valueForKey:@"token"];
}
+ (NSDictionary *)getCodeIp {
    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documents = [array lastObject];
    NSString *documentPath = [documents stringByAppendingPathComponent:@"code.plist"];
    NSDictionary *resultDic = [NSDictionary dictionaryWithContentsOfFile:documentPath];
    return resultDic;
}
+(NSString *)urlEncodeStr:(NSString *)input{
//    NSString *charactersToEscape = @"?!@#$^&%*+,:;='\"`<>()[]{}/\\| ";
//    NSCharacterSet *allowedCharacters = [[NSCharacterSet characterSetWithCharactersInString:charactersToEscape] invertedSet];
//    NSString *upSign = [input stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];
//    return upSign;
    
    NSString *encodedString = (NSString *)
    CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                              
                                                              (CFStringRef)input,
                                                              
                                                              (CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]",
                                                              
                                                              NULL,
                                                              
                                                              kCFStringEncodingUTF8));
    return encodedString;
    
}
 
 
@end