2010-12-15 8 views
0

Xcode 3.2.5で新しいプロジェクトを開始しました。 Xcode 4の統合IBを楽しみにしていますが、今度はxibを使用したくありません。MainWindow.xibで異常な動作が発生しました。アプリケーションがdidFinishLaunchingWithOptionsに届きません。

jsonファイルで文字列を編集したときに問題が発生しました。コードを実行すると、ファイルが確実に変更されたにもかかわらず古い文字列が表示されていたことに気づき、Library/Application Support/iPhone Simulatorフォルダを削除してjsonの変更がバンドルにロードされ、コードに期待値が表示されることを期待しました。

コマンドYをビルドして実行すると、実行されません。私のプロジェクトフォルダにMainWindow.xibはありませんが、Info.plistファイルはMainWindow.xibを参照しています。 (私はXcodeの新しいプロジェクトテンプレートを使ってこのiPhoneアプリを作成した後にこのiPhoneアプリを削除したので)、xibをシミュレータにインストールした後、xibがアプリバンドルに座っていなければならないことをplistから取り除いたアプリ。

私は再びアプリケーションを実行しました。私のアプリケーションデリゲートの苦情、黒い画面だけとブレークポイントは、didFinishLaunchingWithOptionsにヒットしていません。

私はmain.mで何も変更していません。アプリが起動していないのはどうでしょうか?

+1

あなたは 'MainWindow.xib'を持って使用しましたか?ときどきXcodeがリソースをキャッシュするので、MainWindowを削除してもそれがまだそこにあると思うかもしれません。シミュレータをリセットすると、効果的にXcodeがクリーニングされ、おそらく問題が発生しました。 –

+0

それは正しいようです - 私がしたいことは、それがすべてxibを望んでいないようにすることです。 –

答えて

2

MainWindow.xibを削除したときに何かがうんざりしていると思います。これらの手順を実行して、問題が解決するかどうかを確認します。

  1. [プロジェクト]メニューの[Edit Active Target]を選択します。 [Properties]タブを選択し、[Main Nib File]フィールドを空白にします。ターゲット情報ウィンドウを閉じます。

  2. [その他のソース]グループで、main.mファイルを編集します。 UIApplicationMain関数呼び出しで、最後のパラメータをアプリケーションの委任クラスの名前に変更します。あなたは、ウィンドウオブジェクトを作成する必要があるアプリケーションデリゲートで

    int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); 
    
  3. 。私はこれをアプリケーションで行う.DidFinishLaunching :. MainWindow.xibに何か他のものを定義した場合は、ここでも作成できます。

    - (void)applicationDidFinishLaunching:(UIApplication *)application 
    { 
    UIWindow *appWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    self.window = appWindow; 
    [appWindow release]; 
    } 
    

これが機能しない場合、私に知らせて、私はあなたに別の方法を与えることができます。

+0

私はmain()でアプリケーションデリゲートを設定していましたが、ウィンドウを作成していないことを分かっていました - ありがとう!私はどちらの方法でも警告アナライザは得られませんが、self.windowが割り当てられたら、ウィンドウ変数はloadViewのself.viewへのView Controllerの割り当てと同じにする必要がありますか? –

+0

あなたの質問は分かりませんが、すべてのアプリ**には必ずウィンドウが含まれていなければなりません。それがなければ画面に何も表示されません。各アプリには* 1つの*ウィンドウしかなく、その中にはビューが含まれています。:) –

0

viewがXIBに接続されていないような音がします。

0

これは「AppDelegate」@と同じですが、あなたも、このように書くことができます。問題が起こって開始する前に

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

Xcodeのリファクタリングサポートはこのコードで正しく動作します。 –

関連する問題