检查iPhone设备版本在设备上失败
问题描述:
我想检测我的应用程序在哪个iPhone上运行。 我发现这一点,在这里计算器:检查iPhone设备版本在设备上失败
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_RETINA ([[UIScreen mainScreen] scale] >= 2.0)
#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
#define SCREEN_MAX_LENGTH (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
#define SCREEN_MIN_LENGTH (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))
#define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
#define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
#define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)
但是,这并不为我工作。当我有标准模式(不缩放)的iPhone6时,它说它是iPhone5。 我还测试
[UIScreen mainScreen].bounds.size.width
但这返回每次320
在模拟器它的作品完美,但在设备上失败。
有人可以帮我找出哪个iPhone使用?
问候
答
而不是依赖于屏幕尺寸,为什么不使用“[[UIDevice curentDevice] model]
”呢?
Here's a tutorial that might help you out。
如果“[[UIDevice currentDevice] model]
”对于您来说不够详细,还有“sysctlbyname("hw.machine", machineNameAsCString, &size, NULL, 0);
”,其中的教程显示了如何从中获得“漂亮的字符串”(或漂亮版本的模型名称)。
There's also Open Source available that you can drop in to determine the Device display name。
如果您没有提供iPhone 6的launch_screen.xib或启动图像,则在iPhone6中缩放应用程序。 请检查您的状态栏的高度,当您的应用程序运行时,如果它说20,并且它看起来比平常高,应用程序被缩放。 – Alex
我已经添加了launch_screen.xib。没有它也不适用于模拟器。 – BHuelse