Ios 我希望我的应用程序能够识别iPhone型号,因为我';我不使用自动布局
我用下面的方法编写代码Ios 我希望我的应用程序能够识别iPhone型号,因为我';我不使用自动布局,ios,iphone,Ios,Iphone,我用下面的方法编写代码 #define isiPhone6 ( [[UIScreen mainScreen] bounds].size.height == 667)?TRUE:FALSE #define isiPhone5 ([[UIScreen mainScreen] bounds].size.height == 568)?TRUE:FALSE UIStoryboard *mainStoryboard = nil; printf("\nDetected Resolution : %d
#define isiPhone6 ( [[UIScreen mainScreen] bounds].size.height == 667)?TRUE:FALSE
#define isiPhone5 ([[UIScreen mainScreen] bounds].size.height == 568)?TRUE:FALSE
UIStoryboard *mainStoryboard = nil;
printf("\nDetected Resolution : %d x %d\n\n",(int)[[UIScreen mainScreen] nativeBounds].size.width,(int)[[UIScreen mainScreen] nativeBounds].size.height);
if (isiPhone5)
{
mainStoryboard = [UIStoryboard storyboardWithName:@"MainIphone5" bundle:nil];;
// this is iphone 4 inch
}
else if (isiPhone6)
{
mainStoryboard = [UIStoryboard storyboardWithName:@"MainIphone6" bundle:nil];;
// this is iphone 4 inch
}
else
{
mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
//Iphone 3.5 inch
}
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = [mainStoryboard instantiateInitialViewController];
[self.window makeKeyAndVisible];
但iPhone6的环路不起作用,3.5英寸和4英寸的环路也起作用。这里的循环是跳转到iPhone5、iPhone4而不是6。参见本课程
或者创建这个类
#import <Foundation/Foundation.h>
@interface UIDeviceHardware : NSObject
+ (NSString *) platform;
+ (NSString *) platformString;
@end
#import "UIDeviceHardware.h"
#include <sys/types.h>
#include <sys/sysctl.h>
@implementation UIDeviceHardware
+ (NSString *) platform{
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithUTF8String:machine];
free(machine);
return platform;
}
+ (NSString *) platformString{
NSString *platform = [self platform];
if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 1G";
if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";
if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS";
if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4 (GSM)";
if ([platform isEqualToString:@"iPhone3,3"]) return @"iPhone 4 (CDMA)";
if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5 (GSM)";
if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (CDMA)";
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:@"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";
if ([platform isEqualToString:@"iPad2,1"]) return @"iPad 2 (WiFi)";
if ([platform isEqualToString:@"iPad2,2"]) return @"iPad 2 (GSM)";
if ([platform isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)";
if ([platform isEqualToString:@"iPad2,5"]) return @"iPad Mini (WiFi)";
if ([platform isEqualToString:@"iPad2,6"]) return @"iPad Mini (GSM)";
if ([platform isEqualToString:@"iPad2,7"]) return @"iPad Mini (CDMA)";
if ([platform isEqualToString:@"iPad3,1"]) return @"iPad 3 (WiFi)";
if ([platform isEqualToString:@"iPad3,2"]) return @"iPad 3 (CDMA)";
if ([platform isEqualToString:@"iPad3,3"]) return @"iPad 3 (GSM)";
if ([platform isEqualToString:@"iPad3,4"]) return @"iPad 4 (WiFi)";
if ([platform isEqualToString:@"iPad3,5"]) return @"iPad 4 (GSM)";
if ([platform isEqualToString:@"iPad3,6"]) return @"iPad 4 (CDMA)";
if ([platform isEqualToString:@"iPad4,1"]) return @"iPad Air (WiFi)";
if ([platform isEqualToString:@"iPad4,2"]) return @"iPad Air (GSM)";
if ([platform isEqualToString:@"iPad4,3"]) return @"iPad Air (CDMA)";
if ([platform isEqualToString:@"iPad5,3"]) return @"iPad Air 2 (WiFi)";
if ([platform isEqualToString:@"iPad5,4"]) return @"iPad Air 2 (CDMA)";
if ([platform isEqualToString:@"iPad4,4"]) return @"iPad Mini Retina (WiFi)";
if ([platform isEqualToString:@"iPad4,5"]) return @"iPad Mini Retina (CDMA)";
if ([platform isEqualToString:@"iPad4,7"]) return @"iPad Mini 3 (WiFi)";
if ([platform isEqualToString:@"iPad4,8"]) return @"iPad Mini 3 (CDMA)";
if ([platform isEqualToString:@"iPad4,9"]) return @"iPad Mini 3 (CDMA)";
if ([platform isEqualToString:@"i386"]) return [UIDevice currentDevice].model;
if ([platform isEqualToString:@"x86_64"]) return [UIDevice currentDevice].model;
return platform;
}
@end
#导入
@接口UIDeviceHardware:NSObject
+(NSString*)平台;
+(NSString*)平台字符串;
@结束
#导入“UIDeviceHardware.h”
#包括
#包括
@设备硬件的实现
+(NSString*)平台{
大小;
sysctlbyname(“hw.machine”,NULL,&size,NULL,0);
char*machine=malloc(大小);
sysctlbyname(“hw.machine”,machine,&size,NULL,0);
NSString*平台=[NSString stringWithUTF8String:机器];
免费(机器);
返回平台;
}
+(NSString*)平台字符串{
NSString*平台=[自平台];
if([platform isEqualToString:@“iPhone1,1”])返回@“iphone1g”;
if([platform isEqualToString:@“iPhone1,2”])返回@“iphone3g”;
如果([platform IsequalString:@“iPhone2,1”])返回@“iPhone3GS”;
如果([platform IsequalString:@“iPhone3,1”])返回@“iPhone4(GSM)”;
if([platform IsequalString:@“iPhone3,3”])返回@“iPhone4(CDMA)”;
如果([platform IsequalString:@“iPhone4,1”])返回@“iPhone4S”;
如果([platform IsequalString:@“iPhone5,1”])返回@“iPhone5(GSM)”;
如果([platform IsequalString:@“iPhone5,2”])返回@“iPhone5(CDMA)”;
if([platform isEqualToString:@“iPhone5,3”])返回@“iphone5c”;
if([platform isEqualToString:@“iPhone5,4”])返回@“iphone5c”;
如果([platform IsequalString:@“iPhone 6,1”])返回@“iPhone 5S”;
如果([platform IsequalString:@“iPhone 6,2”])返回@“iPhone 5S”;
如果([platform IsequalString:@“iPhone7,1”])返回@“iPhone6 Plus”;
如果([platform IsequalString:@“iPhone7,2”])返回@“iPhone6”;
如果([platform IsequalString:@“iPod1,1”])返回@“iPod Touch 1G”;
如果([platform IsequalString:@“iPod2,1”])返回@“iPod Touch 2G”;
如果([platform IsequalString:@“iPod3,1”])返回@“iPod Touch 3G”;
如果([platform IsequalString:@“iPod4,1”])返回@“iPod Touch 4G”;
如果([platform IsequalString:@“iPod5,1”])返回@“iPod Touch 5G”;
if([platform isEqualToString:@“iPad1,1”])返回@“iPad”;
如果([平台IsequalString:@“iPad2,1”])返回@“iPad2(WiFi)”;
如果([平台IsequalString:@“iPad2,2”])返回@“iPad2(GSM)”;
if([平台IsequalString:@“iPad2,3”])返回@“iPad2(CDMA)”;
如果([平台IsequalString:@“iPad2,5”])返回@“iPad迷你(WiFi)”;
如果([平台IsequalString:@“iPad2,6”])返回@“IPADMini(GSM)”;
if([platform isEqualToString:@“iPad2,7”])返回@“iPad Mini(CDMA)”;
如果([平台IsequalString:@“iPad3,1”])返回@“iPad3(WiFi)”;
if([平台IsequalString:@“iPad3,2”])返回@“iPad3(CDMA)”;
如果([平台IsequalString:@“iPad3,3”])返回@“iPad3(GSM)”;
如果([平台IsequalString:@“iPad3,4”])返回@“IPAD4(WiFi)”;
如果([平台IsequalString:@“iPad3,5”])返回@“IPAD4(GSM)”;
if([平台IsequalString:@“iPad3,6”])返回@“IPAD4(CDMA)”;
如果([平台IsequalString:@“iPad4,1”])返回@“iPad Air(WiFi)”;
如果([平台IsequalString:@“iPad4,2”])返回@“iPad Air(GSM)”;
如果([平台IsequalString:@“iPad4,3”])返回@“iPad Air(CDMA)”;
如果([平台IsequalString:@“iPad5,3”])返回@“iPad Air 2(WiFi)”;
如果([平台IsequalString:@“iPad5,4”])返回@“iPadAir 2(CDMA)”;
如果([platform IsequalString:@“iPad4,4”])返回@“iPad迷你视网膜(WiFi)”;
如果([平台IsequalString:@“iPad4,5”])返回@“iPad迷你视网膜(CDMA)”;
如果([platform IsequalString:@“iPad4,7”])返回@“iPad Mini 3(WiFi)”;
如果([platform IsequalString:@“iPad4,8”])返回@“iPad Mini 3(CDMA)”;
if([platform IsequalString:@“iPad4,9”])返回@“iPad Mini 3(CDMA)”;
if([platform IsequalString:@“i386”])返回[UIDevice currentDevice]。模型;
if([platform IsequalString:@“x86_64”])返回[UIDevice currentDevice]。模型;
返回平台;
}
@结束
我只想知道为什么elseif的循环(使用ios6模拟器运行)会跳转到另一个循环。请让我知道我会为此而感激的