2011-04-13 64 views
2

HII每一個問題在iPhone上安裝應用程序,它使用xcode4

我已創建了一個樣本項目(你好世界)在xcode4創建的,但我不能在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]堆棧:( 843263261, 825818644, 843267069, 842763033, 842725440, 9545, 843742792, 843741800, 844074496, 844072508, 844071060, 860907492, 843011371, 843009055, 843738120, 843731504, 9401,) 拋出的「NSException」

+0

我也有這個問題,我不在我的代碼有setRootViewController任何地方。相反,我使用addSubView。但是,我一直使用SDK 4.3和部署目標3.1.3發現此錯誤。 – Hedin 2011-04-28 20:47:32

回答

6

一個實例,我相信終止後,被稱爲 - [一個UIWindow setRootViewController:在4.0版本中加入,所以你不能使用,在3.1.3。相反,你可以使用addSubView:

+0

亞工作正常,感謝您的回覆,我有一個更多的懷疑,這個修改後的代碼(在通過addSubView替換setRootViewController後)在ios4和高級版設備上運行? – Kiran 2011-04-13 08:50:08

7

你想要做的是替換:

self.window.rootViewController = self.mainViewController; 

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

有一對夫婦的方式來檢查設備上的系統版本。我已經在其他地方看到,蘋果公司並沒有讓這一切變得如此簡單,因爲他們專注於最新和最好的版本,所以沒有規範的方法,儘管許多開發者已經設計了他們自己的解決方案。

一個比較簡潔的我遇到的是:

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