2011-07-08 59 views
0

我有一個使用郵件和打印例程的簡單項目。對於打印,我有一個UIPrintPageRenderer的子類。我下面的蘋果guidelines使用弱鏈接類:用於打印的弱鏈接框架

- The base SDK for your Xcode project must be iOS 4.2 or newer. The name for this setting in the build settings editor is SDKROOT (Base SDK). 
- The deployment target for your project must be iOS 3.1 or newer. The name for this setting is MACOSX_DEPLOYMENT_TARGET (Mac OS X Deployment Target). 
- The compiler for your project must be the LLVM-GCC 4.2 compiler or newer, or the LLVM compiler (Clang) 1.5 or newer. The name for this setting is GCC_VERSION (C/C++ Compiler Version). 
- You must ensure that any frameworks not available in your project’s deployment target are weakly linked, rather than required. See 「Weak Linking to an Entire Framework」 and 「Linking Libraries and Frameworks」 in Xcode Project Management Guide. 

問題

我仍然在應用程序啓動時收到錯誤:

2011-07-08 10:47:19.819 MyTestProject[47013:207] *** -[UIWindow setRootViewController:]: unrecognized selector sent to instance 0x5a2aac0 
2011-07-08 10:47:19.821 MyTestProject[47013:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIWindow setRootViewController:]: unrecognized selector sent to instance 0x5a2aac0' 
2011-07-08 10:47:19.822 MyTestProject[47013:207] Stack: (
    43358288, 
    44516140, 
    43367003, 
    42829430, 
    42826226, 
    9319, 
    1149252, 
    1153359, 
    1178942, 
    1160439, 
    1192408, 
    47780220, 
    42637468, 
    42633384, 
    1151521, 
    1184626, 
    9129, 
    8997 
) 
terminate called after throwing an instance of 'NSException' 

我得到這個當我嘗試運行我的iPad 3.2模擬器應用程序。任何想法爲什麼?

p.s.代碼適用於iPad 4.2和4.3。

回答

3

documentationUIWindow,屬性rootViewController僅適用於iOS 4.0和更高(和,因此,這樣是setRootViewController):

RootViewController的

根視圖控制器爲 窗口。

@property(nonatomic,retain) UIViewController *rootViewController

討論

根視圖控制器提供窗口的內容 視圖。將 視圖控制器分配給此屬性 (以編程方式或使用 接口構建器)將控制器的視圖作爲窗口的內容視圖 安裝。如果該窗口具有 現有視圖層次結構,則在安裝新視圖 之前,會刪除舊視圖 。

此屬性的默認值爲 無。

可用性

可提供的iOS 4.0及更高版本。

這就是爲什麼你的應用在iOS 3.2上崩潰,而不是iOS 4.2和4.3。

+0

啊!爲什麼我沒有想到這一點。我需要更多的咖啡,這就是爲什麼。謝謝。 – Mustafa

0

我不認爲你將能夠在沒有任何額外服務的情況下在低於4.2的iOS上打印。在iOs 4.2或更高版本上,預裝了支持AirPrint的打印機驅動程序(如果我沒有弄錯的話)。在較低的iOs上,這些驅動程序未安裝且無法安裝。

這是從:How to Print a document from iphone below ios version 4.2