【发布时间】:2011-09-20 03:39:57
【问题描述】:
我有一个 iOS 应用程序,我想以编程方式为其创建一个 ViewController。
我启动了一个空的 XCode 项目并修改了 main 方法,使其看起来像这样
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, @"MyAppDelegate_iPad");
[pool release];
return retVal;
}
应用是一个通用应用,MyAppDelegate_iPad是MyAppDelegate的子类,NSObject <UIApplicationDelegate>是NSObject <UIApplicationDelegate>的子类。
我的问题是我在MyAppDelegate_iPad 中覆盖的applicationDidFinishLoading 方法永远不会被调用(第一行的断点永远不会命中)。方法是这样的
-(void) applicationDidFinishLaunching:(UIApplication *)application {
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if(!window)
{
[self release];
return;
}
window.backgroundColor = [UIColor whiteColor];
rootController = [[MyViewController alloc] init];
[window addSubview:rootController.view];
[window makeKeyAndVisible];
[window layoutSubviews];
}
我从我的 plist 文件中删除了链接到 nib 文件的行(我曾经获得默认的“iPad 上的我的通用应用程序”白屏),现在显示的只是黑屏。 applicationDidFinishLoading 仍未被调用。
我做错了吗?我应该如何正确创建我的 AppDelegate 实例?
【问题讨论】:
-
假设这是一个示例,您可以发布它吗?
-
@Deepak 这不是样本。我基于另一个 SO 问题 stackoverflow.com/questions/809898,但除此之外,它是通用应用程序的基本 XCode 空项目。
标签: objective-c ios cocoa-touch