gpt4 book ai didi

iphone - 如何在 iPhone 3.1.3 模拟器上运行通用应用程序?

转载 作者:行者123 更新时间:2023-12-03 18:29:08 26 4
gpt4 key购买 nike

我正在开发一款新应用,希望它能够在 iPhone 和 iPad 上通用。我从“创建基于窗口的应用程序”向导开始,它在“iPhone”和“iPad”组中创建了单独的应用程序委托(delegate)。由于我已经非常熟悉 iPhone 开发,所以我完成了项目的这一部分,现在我准备好做一些 iPad 的东西了。

所以...我首先向我的 iPad delegate 添加 UISplitViewController,将 Active SDK 切换到 3.2,然后它就可以工作了!但是当我切换回 3.1.3 并尝试在模拟器中运行它时,Build and Go 失败了。首先,我看到:

...path.../iPad/AppDelegate_Pad.h:13: error: expected specifier-qualifier-list before 'UISplitViewController'

我已将基础 SDK 设置为 3.2,将部署目标设置为 3.1.3。我想这就够了。但我也在文档中找到了这个方法来进行条件编译:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
MyIPadViewController* vc;
// Create the iPad view controller
#else
MyIPhoneViewController* vc;
// Create the iPhone view controller
#endif

那么我需要在所有地方都这样做吗?看起来需要添加大量代码(无论如何我都会在短时间内删除 4.0 的代码),所以我觉得我一定做错了什么。而且,我什至不知道这对于 @property 或 @synthesize 声明之类的东西是如何工作的。

tl;问题的博士版本 - 我是否错过了某处的设置?

最佳答案

我使用这个 C 函数来帮助保持代码简洁:

BOOL isPad() {
return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
}

当我有针对 iPhone 和 iPad 的不同 xib 文件时,我会做另一件事。我有一个 stripPadSuffixOnPhone() 函数,有助于使代码更简单:

// Load/create the Delete table cell with delete button
self.deleteCell = [Utilities loadNib:stripPadSuffixOnPhone(@"DeleteCell~ipad")
ClassName:@"DeleteCell"
Owner:self];

类似的事情可以使编码更加简单并且条件更少。但仍然需要对所有内容进行两次测试。

关于iphone - 如何在 iPhone 3.1.3 模拟器上运行通用应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2759229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com