Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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:以编程方式检测Lightning vs.30针端口_Ios - Fatal编程技术网

iOS:以编程方式检测Lightning vs.30针端口

iOS:以编程方式检测Lightning vs.30针端口,ios,Ios,我需要检测iOS设备是否配备Lightning端口或vintage 30针端口 最可靠的方法是什么?使用此方法获取设备型号字符串: 然后进行手动启发式,以确定所使用的端口。这是假设未来的iOS设备将有一个Lightning端口,并且机器名称中的数字将遵循到目前为止的相同型号(2014年8月) 检测型号,然后在此基础上确定是否有一个或另一个。有没有比解析“iPad 3,4”字符串更好的方法?每次发布新设备时,都必须更新。这取决于,通过了解充电器是什么,您想要实现什么?我想显示用户界面,告诉用户您

我需要检测iOS设备是否配备Lightning端口或vintage 30针端口


最可靠的方法是什么?

使用此方法获取设备型号字符串:

然后进行手动启发式,以确定所使用的端口。这是假设未来的iOS设备将有一个Lightning端口,并且机器名称中的数字将遵循到目前为止的相同型号(2014年8月)


检测型号,然后在此基础上确定是否有一个或另一个。有没有比解析“iPad 3,4”字符串更好的方法?每次发布新设备时,都必须更新。这取决于,通过了解充电器是什么,您想要实现什么?我想显示用户界面,告诉用户您是需要旧的30针CCK还是新的Lightning to USB适配器,并链接到Apple shoppe中的相关页面。请回答我的问题
NSString *machineName()
{
    struct utsname systemInfo;
    uname(&systemInfo);

    return [NSString stringWithCString:systemInfo.machine
                              encoding:NSUTF8StringEncoding];
}


NS_ENUM(NSUInteger, MachineConnectorType)
{
    MachineConnectorTypeUnknown,
    MachineConnectorType30Pin,
    MachineConnectorTypeLightning
};

enum MachineConnectorType MachineConnectorTypeWithMachineName(NSString *machineName)
{
    if([machineName rangeOfString:@"iPad"].location != NSNotFound)
    {
        // 1st gen mini wants to be special
        if([machineName isEqualToString:@"iPad2,5"])
        {
            return MachineConnectorTypeLightning;
        }

        NSString *model = [machineName substringFromIndex:4];
        if(model.intValue >= 3)
            return MachineConnectorTypeLightning;
        return MachineConnectorType30Pin;
    }
    else if ([machineName rangeOfString:@"iPod"].location != NSNotFound)
    {
        NSString *model = [machineName substringFromIndex:4];
        if(model.intValue >= 5)
            return MachineConnectorTypeLightning;
        return MachineConnectorType30Pin;
    }
    else if ([machineName rangeOfString:@"iPhone"].location != NSNotFound)
    {
        NSString *model = [machineName substringFromIndex:6];
        if(model.intValue >= 5)
            return MachineConnectorTypeLightning;
        return MachineConnectorType30Pin;
    }

    return MachineConnectorTypeUnknown;
}