使用MainWindow.xib的奇怪行为,应用程序将无法访问didFinishLaunchingWithOptions

时间:2010-12-15 01:10:02

标签: iphone xcode ios4 ios-simulator

我在Xcode 3.2.5中开始了一个新项目,其中一切都是在代码中完成的。虽然我期待在Xcode 4中集成IB,但我不想这次使用xib。

当我在json文件中编辑一个字符串时出现了问题。在运行代码时,我注意到旧的字符串出现,即使文件确实已更改,因此我删除了Library/Application Support/iPhone Simulator文件夹,期望我的json更改将被加载到包中,然后代码将看到预期的值

然后命令-Y构建并运行它不会运行。虽然我的项目文件夹中没有MainWindow.xib,但我的Info.plist文件引用了MainWindow.xib。 (我使用Xcode的New Project模板创建了这个iPhone应用程序后删除了它)所以我从plist中删除了该键,在我第一次运行模拟器后安装到模拟器中时,xib必须已经在应用程序包中。应用

然后我再次运行应用程序。 didFinishLaunchingWithOptions上没有任何投诉,只有黑屏 - 以及我的应用代表中的断点。

我在main.m中没有改变任何东西。该应用程序无法启动怎么样?

3 个答案:

答案 0 :(得分:2)

我认为当你删除MainWindow.xib时,有些事情搞砸了。请尝试以下步骤,看看它是否能解决问题。

  1. 在“项目”菜单下,选择Edit Active Target。选择“属性”选项卡,并清空“主笔尖文件”字段。关闭“目标信息”窗口。

  2. 在Other Sources组下,编辑main.m文件。在UIApplicationMain函数调用中,将最后一个参数更改为应用程序委托类的名称。

    int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
    
  3. 在您的应用程序委托中,您需要创建一个窗口对象。我在-applicationDidFinishLaunching中执行此操作:如果你在MainWindow.xib中定义了其他任何东西,你也可以在这里创建它。

    - (void)applicationDidFinishLaunching:(UIApplication *)application
    {
    UIWindow *appWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window = appWindow;
    [appWindow release];
    }
    
  4. 如果这不起作用,请告诉我,我可以用另一种方式给你。

答案 1 :(得分:0)

听起来你没有在XIB中连接view

答案 2 :(得分:0)

这与@“AppDelegate”相同,但您也可以这样写:

(argc, argv, nil, NSStringFromClass([AppDelegate class]))