+ (NSString *)getCFBundleVersion{
NSString *Versionidstring =[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
if (Versionidstring) {
return Versionidstring;
}
return nil;
}
+ (NSString *)getCFBuildVersion{
NSString *Versionidstring =[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
if (Versionidstring) {
return Versionidstring;
}
return nil;
}
+ (NSString *)deviceModelName{
struct utsname systemInfo;
uname(&systemInfo);
NSString *deviceModel = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
if ([deviceModel isEqualToString:@"iPhone1,1"]) return @"iPhone 1G";
if ([deviceModel isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";
if ([deviceModel isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS";
if ([deviceModel isEqualToString:@"iPhone3,1"]) return @"iPhone 4";
if ([deviceModel isEqualToString:@"iPhone3,2"]) return @"Verizon iPhone 4";
if ([deviceModel isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
if ([deviceModel isEqualToString:@"iPhone5,1"]) return @"iPhone 5";
if ([deviceModel isEqualToString:@"iPhone5,2"]) return @"iPhone 5";
if ([deviceModel isEqualToString:@"iPhone5,3"]) return @"iPhone 5C";
if ([deviceModel isEqualToString:@"iPhone5,4"]) return @"iPhone 5C";
if ([deviceModel isEqualToString:@"iPhone6,1"]) return @"iPhone 5S";
if ([deviceModel isEqualToString:@"iPhone6,2"]) return @"iPhone 5S";
if ([deviceModel isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";
if ([deviceModel isEqualToString:@"iPhone7,2"]) return @"iPhone 6";
if ([deviceModel isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";
if ([deviceModel isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";
if ([deviceModel isEqualToString:@"iPhone9,1"]) return @"iPhone 7 (CDMA)";
if ([deviceModel isEqualToString:@"iPhone9,3"]) return @"iPhone 7 (GSM)";
if ([deviceModel isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus (CDMA)";
if ([deviceModel isEqualToString:@"iPhone9,4"]) return @"iPhone 7 Plus (GSM)";
if ([deviceModel isEqualToString:@"iPhone10,1"]||[deviceModel isEqualToString:@"iPhone10,4"]) return @"iPhone 8";
if ([deviceModel isEqualToString:@"iPhone10,2"]||[deviceModel isEqualToString:@"iPhone10,5"]) return @"iPhone 8 Plus";
if ([deviceModel isEqualToString:@"iPhone10,3"]||[deviceModel isEqualToString:@"iPhone10,6"]) return @"iPhone X";
if ([deviceModel isEqualToString:@"iPhone11,2"]) return @"iPhone XS";
if ([deviceModel isEqualToString:@"iPhone11,6"]) return @"iPhone XS MAX";
if ([deviceModel isEqualToString:@"iPhone11,8"]) return @"iPhone XR";
if ([deviceModel isEqualToString:@"iPhone12,1"]) return @"iPhone_11";
if ([deviceModel isEqualToString:@"iPhone12,3"]) return @"iPhone_11_Pro";
if ([deviceModel isEqualToString:@"iPhone12,5"]) return @"iPhone_11_Pro_Max";
if ([deviceModel isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G";
if ([deviceModel isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G";
if ([deviceModel isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G";
if ([deviceModel isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G";
if ([deviceModel isEqualToString:@"iPod5,1"]) return @"iPod Touch 5G";
if ([deviceModel isEqualToString:@"iPad1,1"]) return @"iPad";
if ([deviceModel isEqualToString:@"iPad2,1"]) return @"iPad 2 (WiFi)";
if ([deviceModel isEqualToString:@"iPad2,2"]) return @"iPad 2 (GSM)";
if ([deviceModel isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)";
if ([deviceModel isEqualToString:@"iPad2,4"]) return @"iPad 2 (32nm)";
if ([deviceModel isEqualToString:@"iPad2,5"]) return @"iPad mini (WiFi)";
if ([deviceModel isEqualToString:@"iPad2,6"]) return @"iPad mini (GSM)";
if ([deviceModel isEqualToString:@"iPad2,7"]) return @"iPad mini (CDMA)";
if ([deviceModel isEqualToString:@"iPad3,1"]) return @"iPad 3(WiFi)";
if ([deviceModel isEqualToString:@"iPad3,2"]) return @"iPad 3(CDMA)";
if ([deviceModel isEqualToString:@"iPad3,3"]) return @"iPad 3(4G)";
if ([deviceModel isEqualToString:@"iPad3,4"]) return @"iPad 4 (WiFi)";
if ([deviceModel isEqualToString:@"iPad3,5"]) return @"iPad 4 (4G)";
if ([deviceModel isEqualToString:@"iPad3,6"]) return @"iPad 4 (CDMA)";
if ([deviceModel isEqualToString:@"iPad4,1"]) return @"iPad Air";
if ([deviceModel isEqualToString:@"iPad4,2"]) return @"iPad Air";
if ([deviceModel isEqualToString:@"iPad4,3"]) return @"iPad Air";
if ([deviceModel isEqualToString:@"iPad5,3"]) return @"iPad Air 2";
if ([deviceModel isEqualToString:@"iPad5,4"]) return @"iPad Air 2";
if ([deviceModel isEqualToString:@"i386"]) return @"Simulator";
if ([deviceModel isEqualToString:@"x86_64"]) return @"Simulator";
if ([deviceModel isEqualToString:@"iPad4,4"]
||[deviceModel isEqualToString:@"iPad4,5"]
||[deviceModel isEqualToString:@"iPad4,6"]) return @"iPad mini 2";
if ([deviceModel isEqualToString:@"iPad4,7"]
||[deviceModel isEqualToString:@"iPad4,8"]
||[deviceModel isEqualToString:@"iPad4,9"]) return @"iPad mini 3";
return deviceModel;
}
+ (NSString *)convertNullString:(id)object{
if (!object) {
return @"";
}
if (object && [object isEqual:[NSNull null]]){
return @"";
}else if ([object isKindOfClass:[NSNull class]]){
return @"";
} else if (object == nil) {
return @"";
}
if ([object isKindOfClass:[NSString class]]) {
return object;
}
return [object stringValue];
}
+ (NSArray *)converNullArray:(id)object{
if (!object) {
return @[];
}
if (object && [object isEqual:[NSNull null]]){
return @[];
}else if ([object isKindOfClass:[NSNull class]]){
return @[];
} else if (object == nil) {
return @[];
}
if ([object isKindOfClass:[NSArray class]]) {
return object;
}
return @[];
}
+ (NSDictionary *)converNullDictionary:(id)object{
if (!object) {
return @{};
}
if (object && [object isEqual:[NSNull null]]){
return @{};
}else if ([object isKindOfClass:[NSNull class]]){
return @{};
} else if (object == nil) {
return @{};
}
if ([object isKindOfClass:[NSDictionary class]]) {
return object;
}
return @{};
}
+ (id)toDictionaryWithJsonString:(NSString *)jsonString{
if (jsonString == nil) {
return nil;
}
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *err;
id dic = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:&err];
if(err){
NSLog(@"json解析失败:%@",err);
return nil;
}
return dic;
}
+ (NSString *)toJsonWithObject:(id)obj{
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:obj options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
return [[jsonString stringByReplacingOccurrencesOfString:@"\n" withString:@""] stringByReplacingOccurrencesOfString:@" " withString:@""];
}
+ (NSDictionary *)getParmarsWithOriginString:(NSString *)originString{
NSMutableDictionary *params = [NSMutableDictionary dictionary];
NSURLComponents *urlComponents = [[NSURLComponents alloc] initWithString:originString];
[urlComponents.queryItems enumerateObjectsUsingBlock:^(NSURLQueryItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
[params setObject:obj.value forKey:obj.name];
}];
return [params copy];
}
+ (UIViewController *)getCurrentVC {
UIViewController* vc = [UIApplication sharedApplication].keyWindow.rootViewController;
while (1) {
if ([vc isKindOfClass:[UITabBarController class]]) {
vc = ((UITabBarController*)vc).selectedViewController;
}
if ([vc isKindOfClass:[UINavigationController class]]) {
vc = ((UINavigationController*)vc).visibleViewController;
}
if (vc.presentedViewController) {
vc = vc.presentedViewController;
}else{
break;
}
}
return vc;
}
-
判断某个页面是否已存在UIViewController+Category
- (BOOL)isContentsViewController:(NSString *)viewControllerString{
if ([viewControllerString isEqualToString:@""] ||viewControllerString == nil) {
return NO;
}
NSArray *list = self.navigationController.viewControllers;
BOOL isHave = NO;
for (int i = 0; i< list.count; i++) {
UIViewController *temp = list[i];
if ([[temp class] isEqual:NSClassFromString(viewControllerString)]) {
isHave = YES;
}
}
return isHave;
}
-
获取某个页面在控制器列表内的位置UIViewController+Category
// -1代表不存在
- (int)getIndexViewController:(NSString *)viewControllerString{
NSArray *list = self.navigationController.viewControllers;
int isIndex = -1;
for (int i = 0; i< list.count; i++) {
UIViewController *temp = list[i];
if ([[temp class] isEqual:NSClassFromString(viewControllerString)]) {
isIndex = i;
break;
}
}
return isIndex;
}