iOS的分类方法,简言其作用为拓展类方法,增加类的多样性和功能性
1、建立UIDevice的分类方法,本例采用的是命名为WYGDeviceInfo生成UIDevice+WYGDeviceInfo的声明文件和实现文件
2、在UIDevice+WYGDeviceInfo.h的文件中,声明7个实例方法提供给UIDevice使用,分别为:
//iOS限制:无法获取设备的UDID和MAC地址
/**
获取当前硬件体系类型
*/
-(NSString *)deviceName;
/**
获取当前操作系统名
*/
-(NSString *)sysnameName;
/**
获取网络上的名称
*/
-(NSString *)nodenameName;
/**
获取当前发布级别
*/
-(NSString *)releaseName;
/**
获取当前发布版本
*/
-(NSString *)versionName;
/**
获取手机型号
*/
- (NSString*)iphoneType;
/**
获取UUID:通用唯一标识符;32位的十六进制序列:8-4-4-4-12
*/
- (NSString *)deviceUniqueIdentifier;
3、实现文件:
//先引用#import <sys/utsname.h>
//uname系统调用:获取当前内核名称和其它信息 参数__name:指向存放系统信息的缓冲区
-(NSString *)deviceName{
struct utsname u;
uname(&u);
return [NSString stringWithCString:u.machine encoding:NSUTF8StringEncoding];
}
-(NSString *)sysnameName{
struct utsname u;
uname(&u);
return [NSString stringWithCString:u.sysname encoding:NSUTF8StringEncoding];
}
-(NSString *)nodenameName{
struct utsname u;
uname(&u);
return [NSString stringWithCString:u.nodename encoding:NSUTF8StringEncoding];
}
-(NSString *)releaseName{
struct utsname u;
uname(&u);
return [NSString stringWithCString:u.release encoding:NSUTF8StringEncoding];
}
-(NSString *)versionName{
struct utsname u;
uname(&u);
return [NSString stringWithCString:u.version encoding:NSUTF8StringEncoding];
}
- (NSString*)iphoneType {
//需要导入头文件:#import <sys/utsname.h>
struct utsname systemInfo;
uname(&systemInfo);
NSString*platform = [NSString stringWithCString: systemInfo.machine encoding:NSASCIIStringEncoding];
if([platform isEqualToString:@"iPhone1,1"])
return @"iPhone 2G";
if([platform isEqualToString:@"iPhone1,2"])
return @"iPhone 3G";
if([platform isEqualToString:@"iPhone2,1"])
return @"iPhone 3GS";
if([platform isEqualToString:@"iPhone3,1"])
return @"iPhone 4";
if([platform isEqualToString:@"iPhone3,2"])
return @"iPhone 4";
if([platform isEqualToString:@"iPhone3,3"])
return @"iPhone 4";
if([platform isEqualToString:@"iPhone4,1"])
return @"iPhone 4S";
if([platform isEqualToString:@"iPhone5,1"])
return @"iPhone 5";
if([platform isEqualToString:@"iPhone5,2"])
return @"iPhone 5";
if([platform isEqualToString:@"iPhone5,3"])
return @"iPhone 5c";
if([platform isEqualToString:@"iPhone5,4"])
return @"iPhone 5c";
if([platform isEqualToString:@"iPhone6,1"])
return @"iPhone 5s";
if([platform isEqualToString:@"iPhone6,2"])
return @"iPhone 5s";
if([platform isEqualToString:@"iPhone7,1"])
return @"iPhone 6 Plus";
if([platform isEqualToString:@"iPhone7,2"])
return @"iPhone 6";
if([platform isEqualToString:@"iPhone8,1"])
return @"iPhone 6s";
if([platform isEqualToString:@"iPhone8,2"])
return @"iPhone 6s Plus";
if([platform isEqualToString:@"iPhone8,4"])
return @"iPhone SE";
if([platform isEqualToString:@"iPhone9,1"])
return @"iPhone 7";
if([platform isEqualToString:@"iPhone9,3"])
return @"iPhone 7";
if([platform isEqualToString:@"iPhone9,4"])
return @"iPhone 7 Plus";
if([platform isEqualToString:@"iPhone9,2"])
return @"iPhone 7 Plus";
if([platform isEqualToString:@"iPhone10,1"])
return @"iPhone 8";
if([platform isEqualToString:@"iPhone10,4"])
return @"iPhone 8";
if([platform isEqualToString:@"iPhone10,2"])
return @"iPhone 8 Plus";
if([platform isEqualToString:@"iPhone10,5"])
return @"iPhone 8 Plus";
if([platform isEqualToString:@"iPhone10,3"])
return @"iPhone X";
if([platform isEqualToString:@"iPhone10,6"])
return @"iPhone X";
if([platform isEqualToString:@"iPod1,1"])
return @"iPod Touch 1G";
if([platform isEqualToString:@"iPod2,1"])
return @"iPod Touch 2G";
if([platform isEqualToString:@"iPod3,1"])
return @"iPod Touch 3G";
if([platform isEqualToString:@"iPod4,1"])
return @"iPod Touch 4G";
if([platform isEqualToString:@"iPod5,1"])
return @"iPod Touch 5G";
if([platform isEqualToString:@"iPad1,1"])
return @"iPad 1G";
if([platform isEqualToString:@"iPad2,1"])
return @"iPad 2";
if([platform isEqualToString:@"iPad2,2"])
return @"iPad 2";
if([platform isEqualToString:@"iPad2,3"])
return @"iPad 2";
if([platform isEqualToString:@"iPad2,4"])
return @"iPad 2";
if([platform isEqualToString:@"iPad2,5"])
return @"iPad Mini 1G";
if([platform isEqualToString:@"iPad2,6"])
return @"iPad Mini 1G";
if([platform isEqualToString:@"iPad2,7"])
return @"iPad Mini 1G";
if([platform isEqualToString:@"iPad3,1"])
return @"iPad 3";
if([platform isEqualToString:@"iPad3,2"])
return @"iPad 3";
if([platform isEqualToString:@"iPad3,3"])
return @"iPad 3";
if([platform isEqualToString:@"iPad3,4"])
return @"iPad 4";
if([platform isEqualToString:@"iPad3,5"])
return @"iPad 4";
if([platform isEqualToString:@"iPad3,6"])
return @"iPad 4";
if([platform isEqualToString:@"iPad4,1"])
return @"iPad Air";
if([platform isEqualToString:@"iPad4,2"])
return @"iPad Air";
if([platform isEqualToString:@"iPad4,3"])
return @"iPad Air";
if([platform isEqualToString:@"iPad4,4"])
return @"iPad Mini 2G";
if([platform isEqualToString:@"iPad4,5"])
return @"iPad Mini 2G";
if([platform isEqualToString:@"iPad4,6"])
return @"iPad Mini 2G";
if([platform isEqualToString:@"iPad4,7"])
return @"iPad Mini 3";
if([platform isEqualToString:@"iPad4,8"])
return @"iPad Mini 3";
if([platform isEqualToString:@"iPad4,9"])
return @"iPad Mini 3";
if([platform isEqualToString:@"iPad5,1"])
return @"iPad Mini 4";
if([platform isEqualToString:@"iPad5,2"])
return @"iPad Mini 4";
if([platform isEqualToString:@"iPad5,3"])
return @"iPad Air 2";
if([platform isEqualToString:@"iPad5,4"])
return @"iPad Air 2";
if([platform isEqualToString:@"iPad6,3"])
return @"iPad Pro 9.7";
if([platform isEqualToString:@"iPad6,4"])
return @"iPad Pro 9.7";
if([platform isEqualToString:@"iPad6,7"])
return @"iPad Pro 12.9";
if([platform isEqualToString:@"iPad6,8"])
return @"iPad Pro 12.9";
if([platform isEqualToString:@"i386"])
return @"iPhone Simulator";
if([platform isEqualToString:@"x86_64"])
return @"iPhone Simulator";
return platform;
}
- (NSString *)deviceUniqueIdentifier{
NSMutableString *UUIDstring = [[[self identifierForVendor] UUIDString] mutableCopy];
return UUIDstring;
}
4、调用方法:导入头文件,然后直接用UIDevice的快速方法currentDevice进行实例消息的发送和调用
譬如:
[UIDevice currentDevice] deviceName] 或者 [UIDevice currentDevice].deviceName]
网友评论