在运行时检测当前 iOS 或 Mac OS X 设备的硬件、软件和显示。
iOS
简单使用(以运行 iOS 8.1.3 的 iPhone 6 为例)
[[GBDeviceInfo deviceInfo] isOperatingSystemAtLeastVersion:@"8.0"]; // #> YES
[GBDeviceInfo deviceInfo].isJailbroken; // #> NO
[GBDeviceInfo deviceInfo].model; // #> GBDeviceModeliPhone6
[GBDeviceInfo deviceInfo].family; // #> GBDeviceFamilyiPad
[GBDeviceInfo deviceInfo].modelString; // #> @"iPhone 6"
[GBDeviceInfo deviceInfo].osVersion.major; // #> 8
[GBDeviceInfo deviceInfo].osVersion.minor; // #> 1
[GBDeviceInfo deviceInfo].displayInfo.pixelsPerInch; // #> 326
您也可以重用返回的对象以节省一些输入。首先将对象分配给某个变量
GBDeviceInfo *deviceInfo = [GBDeviceInfo deviceInfo];
然后从对象获取所需的内容
//Model numbers
NSLog(@"Major device ver: %d", deviceInfo.deviceVersion.major); // Major device ver: 7
NSLog(@"Major device ver: %d", deviceInfo.deviceVersion.minor); // Minor device ver: 2
//Specific model
if (deviceInfo.model == GBDeviceModeliPhone6) {
NSLog(@"It's a 6"); // It's a 6
}
//Family of device
if (deviceInfo.family != GBDeviceFamilyiPad) {
NSLog(@"It's not an iPad"); // It's not an iPad
}
//Screen type
if (deviceInfo.display == GBDeviceDisplayiPhone4p7Inch) {
NSLog(@"4.7 Inch display"); // 4.7 Inch display
}
//iOS Version
if (deviceInfo.majoriOSVersion >= 6) {
NSLog(@"We've got iOS 6+"); // We've got iOS 6+
}
//Raw systemInfo string
NSLog(@"systemInfo: %@", deviceInfo.rawSystemInfoString); // systemInfo: iPhone7,2
别忘了导入头文件。
#import <GBDeviceInfo/GBDeviceInfo.h>
如果您想使用 isJailbroken
属性,请确保首先将 Jailbreak subspec 添加到项目的 Podfile 中,例如:
pod 'GBDeviceInfo', '~> 6.0'
pod 'GBDeviceInfo/Jailbreak', '~> 6.0'
缺少您需要的属性?提交一个 Pull Request 或联系 [email protected]!
OS X
简单使用(以运行 10.8.2 的具有 Ivy Bridge 3770K 处理器的 Mac Pro 为例)
[[GBDeviceInfo deviceInfo] isOperatingSystemAtLeastVersion:@"10.8"]; // #> YES
[GBDeviceInfo deviceInfo].osVersion.major; // #> 10
[GBDeviceInfo deviceInfo].osVersion.minor; // #> 8
[GBDeviceInfo deviceInfo].family == GBDeviceFamilyMacPro; // #> YES
[GBDeviceInfo deviceInfo].isMacAppStoreAvailable; // #> YES
[GBDeviceInfo deviceInfo].isIAPAvailable; // #> YES
您也可以重用返回的对象以节省一些输入。首先将对象分配给某个变量
GBDeviceInfo *deviceInfo = [GBDeviceInfo deviceInfo];
然后从对象获取所需的内容
GBDeviceInfo *deviceInfo = [GBDeviceInfo deviceInfo];
//OS X Version
if (deviceInfo.osVersion.minor >= 8) {
NSLog(@"It's OS X 10.8+ (Mountain Lion)"); // It's OS X 10.8+ (Mountain Lion)
}
if (deviceInfo.osVersion.patch == 2) {
NSLog(@"Must be running x.x.2"); // Must be running x.x.2
}
//App Store stuff
if (deviceInfo.isMacAppStoreAvailable) {
NSLog(@"App store is available."); // App store is available
}
if (deviceInfo.isIAPAvailable) {
NSLog(@"...and so are IAPs"); // ...and so are IAPs
}
//Hardware stuff
NSLog(@"SystemInfo: %@", deviceInfo.rawSystemInfoString); // SystemInfo: MacPro3,1
NSLog(@"Major device ver: %d", deviceInfo.deviceVersion.major); // Major device ver: 3
NSLog(@"Minor device ver: %d", deviceInfo.deviceVersion.minor); // Minor device ver: 1
NSLog(@"Node name: %@", deviceInfo.nodeName); // Node name: MyMac.local
NSLog(@"RAM: %.3f GB", deviceInfo.physicalMemory); // RAM: 16.000 GB
NSLog(@"CPU freq: %.3f GHz", deviceInfo.cpu.frequency); // CPU freq: 3.500 GHz
NSLog(@"Number of cores: %d", deviceInfo.cpu.numberOfCores); // Number of cores: 8
NSLog(@"L2 Cache size: %.0f KB", deviceInfo.cpu.l2CacheSize); // L2 Cache size: 256 KB
//Endianness
if (deviceInfo.byteOrder == GBByteOrderLittleEndian) {
NSLog(@"Little Endian"); // Little Endian
}
//Family of device
if (deviceInfo.family != GBDeviceFamilyMacBookAir) {
NSLog(@"It's not a Macbook Air"); // It's not a Macbook Air
}
//Screen resolution
if (deviceInfo.screenResolution.width == 1920 && deviceInfo.screenResolution.height == 1200) {
NSLog(@"Resolution: 1920x1200"); // Resolution: 1920x1200
}
别忘了导入框架
#import <GBDeviceInfo/GBDeviceInfo.h>
缺少您需要的属性?提交一个 Pull Request 或联系 [email protected]!
iOS 设备支持
- iPhone1
- iPhone3G
- iPhone3GS
- iPhone4
- iPhone4S
- iPhone5
- iPhone5C
- iPhone5S
- iPhone6
- iPhone6Plus
- iPhone6S
- iPhone6SPlus
- iPhone7
- iPhone7Plus
- iPhone8
- iPhone8Plus
- iPhoneSE
- iPhoneSE2
- iPhoneSE3
- iPhoneX
- iPhoneXR
- iPhoneXS
- iPhoneXSMax
- iPhone11
- iPhone11Pro
- iPhone11ProMax
- iPhone12Mini
- iPhone12
- iPhone12Pro
- iPhone12ProMax
- iPhone13Mini
- iPhone13
- iPhone13Pro
- iPhone13ProMax
- iPhone14
- iPhone14Plus
- iPhone14Pro
- iPhone14ProMax
- iPad1
- iPad2
- iPad3
- iPad4
- iPad5
- iPad6
- iPad7
- iPad8
- iPad9
- iPad10
- iPadMini1
- iPadMini2
- iPadMini3
- iPadMini4
- iPadMini5
- iPadMini6
- iPadAir1
- iPadAir2
- iPadAir3
- iPadAir4
- iPadAir5
- iPadPro9p7Inch
- iPadPro10p5Inch
- iPadPro12p9Inch
- iPadPro12p9Inch2
- iPadPro11Inch
- iPadPro11Inch2
- iPadPro12p9Inch3
- iPadPro12p9Inch4
- iPadPro11Inch3
- iPadPro12p9Inch5
- iPadPro11Inch4
- iPadPro12p9Inch6
- iPod1
- iPod2
- iPod3
- iPod4
- iPod5
- iPod6
- iPod7
- iPhone 模拟器
- iPad 模拟器
OS X 设备家族支持
- iMac
- iMacPro
- MacMini
- MacStudio
- MacPro
- MacBook
- MacBookAir
- MacBookPro
- Xserve
作者
企业
提供高级支持、集成、用例适应和咨询服务。请联系 [email protected]。
版权 & 许可
版权所有 2015 Goonbee
根据Apache许可证版本2.0(“许可证”)授权,除非适用法律要求或在书面形式同意,否则不得使用本作品。您可以在LICENSE文件中或以下网址获取许可证副本:
https://apache.ac.cn/licenses/LICENSE2.0
除非适用法律要求或书面同意,根据许可证分发的软件以“原样”为基础分发,除非明确说明,否则不对任何形式的保证或条件承担责任。请参阅许可证了解关于权限和限制的具体语言。