Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何找到gsm和cdma等网络功能_Ios_Iphone - Fatal编程技术网

Ios 如何找到gsm和cdma等网络功能

Ios 如何找到gsm和cdma等网络功能,ios,iphone,Ios,Iphone,我有一个要求,就像我需要通过编程找到的那样,即特定的IOS设备是否具有GSM、CDMA和SPI网络功能 所以,如果有什么办法可以找到,请告诉我 提前感谢。使用UIDevice类,您可以确定应用程序是在iPod还是iPhone上运行。要获取此信息,请访问名为model的属性,该属性将返回iPhone或iPod touch的NSString。然而,有时你可能需要更多的细节,例如iPhone是最新的设备,3GS还是iPod是第一代还是第二代设备 访问系统硬件将显示我们进行上述区分所需的信息。我们将使用

我有一个要求,就像我需要通过编程找到的那样,即特定的IOS设备是否具有GSM、CDMA和SPI网络功能

所以,如果有什么办法可以找到,请告诉我


提前感谢。

使用
UIDevice
类,您可以确定应用程序是在iPod还是iPhone上运行。要获取此信息,请访问名为model的属性,该属性将返回iPhone或iPod touch的NSString。然而,有时你可能需要更多的细节,例如iPhone是最新的设备,3GS还是iPod是第一代还是第二代设备

访问系统硬件将显示我们进行上述区分所需的信息。我们将使用一个category来扩展UIDevice类,并使用一个以字符串形式返回“machine”类型的方法。从下面的接口定义开始:

@interface UIDevice(machine)
- (NSString *)machine;
@end
要访问硬件类型,我们将调用标准C库中的函数:

sysctlbyname(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen);

导入
#导入

然后,
NSString*deviceName=[Classname myDeviceModel]

+ (NSString*)myDeviceModel 
  {
    struct utsname deviceInfo;

    uname(&deviceInfo);

    NSString *deviceNameTemp = [NSString stringWithCString:deviceInfo.machine encoding:NSUTF8StringEncoding];
    NSDictionary *deviceDictionary =
    @{

   //simulators.
   @"i386":     @"iPhone Simulator",
   @"x86_64":   @"iPad Simulator",

   //iPhone's.
   @"iPhone1,1":    @"iPhone",
   @"iPhone1,2":    @"iPhone 3G",
   @"iPhone2,1":    @"iPhone 3GS",
   @"iPhone3,1":    @"iPhone 4",
   @"iPhone3,2":    @"iPhone 4(Rev A)",
   @"iPhone3,3":    @"iPhone 4(CDMA)",
   @"iPhone4,1":    @"iPhone 4S",
   @"iPhone5,1":    @"iPhone 5(GSM)",
   @"iPhone5,2":    @"iPhone 5(GSM+CDMA)",
   @"iPhone5,3":    @"iPhone 5c(GSM)",
   @"iPhone5,4":    @"iPhone 5c(GSM+CDMA)",
   @"iPhone6,1":    @"iPhone 5s(GSM)",
   @"iPhone6,2":    @"iPhone 5s(GSM+CDMA)",

   //iPads.
   @"iPad1,1":  @"iPad",
   @"iPad2,1":  @"iPad 2(WiFi)",
   @"iPad2,2":  @"iPad 2(GSM)",
   @"iPad2,3":  @"iPad 2(CDMA)",
   @"iPad2,4":  @"iPad 2(WiFi Rev A)",
   @"iPad2,5":  @"iPad Mini(WiFi)",
   @"iPad2,6":  @"iPad Mini(GSM)",
   @"iPad2,7":  @"iPad Mini(GSM+CDMA)",
   @"iPad3,1":  @"iPad 3(WiFi)",
   @"iPad3,2":  @"iPad 3(GSM+CDMA)",
   @"iPad3,3":  @"iPad 3(GSM)",
   @"iPad3,4":  @"iPad 4(WiFi)",
   @"iPad3,5":  @"iPad 4(GSM)",
   @"iPad3,6":  @"iPad 4(GSM+CDMA)",

   //ipods
   @"iPod1,1":  @"iPod 1st Gen",
   @"iPod2,1":  @"iPod 2nd Gen",
   @"iPod3,1":  @"iPod 3rd Gen",
   @"iPod4,1":  @"iPod 4th Gen",
   @"iPod5,1":  @"iPod 5th Gen",

   };

    NSString *deviceName = commonNamesDictionary[deviceNameTemp];

    if (deviceName == nil) 
    {
        deviceName = machineName;
    }

    return deviceName;
}

谢谢你的回复,但我正在寻找任何其他直接API或核心API,而不是像这样,因为在未来的新手机来,然后我需要添加在列表中再次。