1

我想做一个可以在 iPad 和 iPhone4 上运行的通用版本。基本上,这是一款游戏的“高清”版本,可以在更高分辨率的显示设备上运行。

据我所知,iPad和iPhone4都运行armv7,所以选择armv6和armv7似乎没有意义。虽然,这是 Apple 告诉你的。我知道这些说明是在 iPhone4 还没有推出之前制定的,所以我很想知道是否有人知道为 iPad 3.2 和 iPhone 4.0 构建的程序。

如果 SDK 文档涵盖了这一点,我很抱歉,但我找不到它!

作为奖励,我有点想知道正在构建的特定 SDK 的定义,以便我可以进行编译时检查,以便在运行 3.2 编译时不会出错。图层类中有一个名为 contentsScale 的特定成员,它现在出现在 4.0 中。我只需要知道其中一个或两个的定义名称。(3.2 和 4.0)

非常感谢!

凯尔

4

1 回答 1

2

如果您希望在您的应用程序中支持的唯一设备是 iPhone 4 和 iPad,那么您只能针对 armv7 构建,这会稍微减小可执行文件的大小。但是,您需要在 Info.plist 中armv7的键下添加列表,UIRequiredDeviceCapabilities以确保 App Store 列表不允许您将其安装在 armv6 设备上。不过,阻止它在 armv7 iPhone 3G S 和第三代 iPod touch 上被购买和运行,同时允许 iPhone 4 和 iPad 运行会比较棘手。

否则,您将像构建任何其他通用应用程序一样构建此应用程序。我建议从 iPhone 项目开始并将其转换为通用应用程序,或者从通用应用程序模板开始。

可以使用该方法来检测是否在运行时实现了特定-respondsToSelector:方法。例如,以下代码检查-contentsScaleCALayer 上的可用性并调整图层的比例以匹配显示的比例:

if ([self respondsToSelector:@selector(setContentsScale:)])
{
    Class screenClass = NSClassFromString(@"UIScreen");
    if ( screenClass != Nil)
    {
        id scale = [[screenClass mainScreen] valueForKey:@"scale"]; 
        [(id)self setValue:scale forKey:@"contentsScale"]; 
    }
}
于 2010-07-12T22:48:34.823 回答