如果你正在升級同一個項目,那麼你不能這樣做。
Apple在其模板中使用的用於訪問應用程序的機制在這些版本之間發生了變化。
在3.x中,Main Interface
在您的項目設置中設置爲MainWindow.xib
。在此xib
中,您的應用程序委託作爲對象加載。
在4.x中的main.m
特別是與該行加載應用程序的委託:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
它已經3.x和4.x之間改變的最後一個參數
你最好的選擇是創建一個新項目並查看模板代碼是如何連接的。
UPDATE
首先,如果你的項目工作,你真的需要改變呢?
如果是這樣那麼我用從一個全新的項目
轉到您的main.m
模板代碼,並改變從
int main(int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
實施,
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
NB變化AppDelegate
添加到您的應用程序委託類的名稱。
您還需要更新您的應用程序委託才能以編程方式創建UIWindow
。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Instantiate your rootViewController
self.window.rootViewController = yourRootViewController;
[self.window makeKeyAndVisible];
return YES;
}
這是我能想到的,可能會有一些其他的字幕最明顯的差異,但我不這麼久,我不記得使用3.x的。
感謝您的回答。太糟糕了「獅子」不能運行3.x了。您能否更詳細地說明「模板代碼如何連接」的含義? – Stanley
感謝您的詳細解釋。很遺憾,在早期階段不使用根視圖控制器。我不知道視圖控制器的重要性,因爲我對可可編碼模式不熟悉。我只是希望有一個有效的視圖控制器來翻轉視圖。也許我應該想辦法在沒有控制器的情況下做到這一點。 – Stanley
在iOS 4中,一個警告'rootViewController'被添加到'UIWindow',所以如果你想支持較老,那麼你應該以舊的方式添加你的視圖控制器,例如, '[self.window addSubView:yourViewController.view];' –