所以我有一个真正有用的功能,当我制作设备特定的URL时,但我想将它放在全局头文件中,以便任何类都可以使用它易iPhone-iPad设备类型在头文件中的伎俩
- (NSString *)deviceType
{
NSString *deviceName = @"iphone";
if([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
deviceName = @"ipad";
}
else {
deviceName = @"iphone4";
}
}
return deviceName;
}
这可能是也可能不是这样做的最佳方式,但我想知道如何获取到一个全球性的标题,所以我可以做这样的事情
NSString *deviceName = GETDEVICENAME;
不清楚这是否真的做到了你想要的。我认为运行iOS 4.0的3GS iPhone将显示为iPhone4。你可能想要检查respondsToSelector和[UIScreen mainScreen] .scale == 2.0 – mtoy 2010-08-23 23:27:41
你是对的,3GS确实对比例做出了响应 – PaulWoodIII 2010-08-24 09:19:02
这个答案不正确,如上所述。 UIScreen的缩放属性在iOS4.0中引入。因此,任何运行iOS4.0 +(ipod,iphone,iwhatever)的设备都将使用上述代码作为iphone4进行响应。我认为一般来说,要确定某人正在使用的确切模型是错误的方法来将设计变为明智的。这样的代码可能会破坏道路。 查看UIScreen的比例属性文档 http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIScreen_Class/Reference/UIScreen.html#//apple_ref/occ/instp/UIScreen/规模 – Jonny 2011-02-23 02:47:31