在使用xcode4创建的iphone上安装app时出现问题

时间:2011-04-13 07:40:53

标签: iphone-sdk-3.0 xcode4

每个人都

我在xcode4中创建了一个示例项目(hello world),但我无法在iphone上安装它(ios 3.1.3) 即使我选择了部署目标3.1.3(代码签名都是正确的)

我正在安装时在控制台中关注 2011-04-13 13:01:37.868 prjTest [244:207] * - [UIWindow setRootViewController:]:无法识别的选择器发送到实例0x119cd0 2011-04-13 13:01:37.885 prjTest [244:207] 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' ** - [UIWindow setRootViewController:]:无法识别的选择器发送到实例0x119cd0' 2011-04-13 13:01:37.902 prjTest [244:207] Stack :(     843263261,     825818644,     843267069,     842763033,     842725440,     9545,     843742792,     843741800,     844074496,     844072508,     844071060,     860907492,     843011371,     843009055,     843738120,     843731504,     9401,     9324 ) 抛出'NSException'实例后调用终止

2 个答案:

答案 0 :(得分:7)

您要做的是替换:

self.window.rootViewController = self.mainViewController;

[self.window addSubview:self.mainViewController.view];

有几种方法可以检查设备上的系统版本。我在其他地方读过,Apple并没有特别容易,因为他们专注于最新和最好的版本,所以没有规范的方法,尽管许多开发人员已经设计了自己的解决方案。

我遇到的更简洁的一个是:

if( [[[UIDevice currentDevice] systemVersion] compare:@"4.0" options:NSNumericSearch] == NSOrderedAscending )
     [self.window addSubview:self.mainViewController.view];
else
     self.window.rootViewController = self.mainViewController;

答案 1 :(得分:6)

我相信 - 在版本4.0中添加了[UIWindow setRootViewController:],因此您无法在3.1.3中使用它。相反,您可以使用addSubView: