Если вы обновляете тот же проект, то нет, вы не можете просто сделать это.
Механизм, который 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 так долго, что не могу вспомнить.