我做了一个游戏,我有一个方法,我想根据它是iphone 4还是5来运行。有没有人知道这样做的方法。
答案 0 :(得分:2)
您可以使用以下代码:
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0f)
#define IS_RETINA ([[UIScreen mainScreen] scale] == 2.0f)
答案 1 :(得分:1)
if ([[UIScreen mainScreen] bounds].size.height == 568)
{
for iphone 5,5c and 5s
}
else
{
for other device 4 4s
}
答案 2 :(得分:0)
我通常在“App Name-Prefix.pch”文件中添加这些宏定义(因此可以在任何地方访问它们而无需导入该文件):
#define IS_iPHONE_5 [[UIScreen mainScreen] bounds].size.height == 568
#define IS_iPHONE [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone
#define IS_iPAD [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad
#define iDEVICE_TYPE (IS_iPAD) ? @"iPad" : ((IS_iPHONE_5) ? @"iPhone5" : @"iPhone")
如果我使用的是.xib文件,我会为每个视图控制器创建3个不同的.xib-s,我将~iPhone,~iPhone5和~iPad放在他们名字的末尾。当我需要加载相应的笔尖时,我只写:
NSString *nameOfNib = [NSString stringWithFormat:@"ADWRootViewController~%@", iDEVICE_TYPE];
ADWRootViewController *rootVC = [[ADWRootViewController alloc] initWithNibName:nameOfNib
bundle:nil];
我希望它有所帮助。请注意,我不会在我的代码中检查它是否属于Retina或非Retina设备。
答案 3 :(得分:0)
可能您正在寻找[[UIDevice currentDevice] model]
答案 4 :(得分:-1)
使用[[[UIDevice currentDevice] systemVersion] floatValue]获取版本信息。