2010-11-18 2 views
0

私は古いMacで開発しています。私はXcode 3.1を実行している新しいMacにアクセスすることはできませんが、自分のソースコードが確実に動作するようにしたいのです。これまではかなり簡単でした。名前の隣に「廃止予定」というものは何も無視していますが、NIBからXIBへの変更は私にはうまくいきました。私が読んだことは、リリースビルド中にXIBがNIBにコンパイルされることを意味するように思われますが、デバッグビルド中にはそうではないかもしれません。[NSBundle loadNibNamed:owner:]はXcode 3.1でどのように動作しますか?

Xcode 3.1では何が行われますか?

#import <Cocoa/Cocoa.h> 

int main(int argc, char *argv[]) 
{ 
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
[NSApplication sharedApplication]; 

[NSBundle loadNibNamed:@"MainMenu" owner: NSApp]; 
[[NSApp mainMenu] removeItem: [[NSApp mainMenu]itemWithTitle: @"File"]]; 

[pool release]; 
[NSApp run]; 
return NSApplicationMain(argc, (const char **) argv); 
} 

MainMenu.nibが存在しないため、デバッグに失敗しましたか?または、アプリケーションがコンパイルされるたびに、XIBがNIBに変換され、期間があり、これについて何も心配する必要はありませんか?

+0

他の開発環境と同じように動作します。それはXcode IDEの機能ではなく、ココアの方法です。ココアは、最終的にはオペレーティングシステムの一部なので、どのバージョンのOSをお求めですか? –

答えて

1

XIBは、実行時に常にNIBにコンパイルされます。 XIBは単なるXMLベースのストレージ形式です。 XIBをコンパイルして生成されたNIBには、NIBファイルを編集するために必要な情報が含まれていません.XIBはの読み取り専用 NIBにコンパイルされます。これは、あなたのアプリケーションがそれらをまったくどのように使用するかには影響しません。NIBはNIBです。

+0

優秀!それは本当に知って良いです。私は、「リリースのビルド時のみ」という意味で「アプリケーションのデプロイメント」中にXIBがNIBにコンパイルされると言う人々を見ていました。私の正直で哀れな質問を解決してくれてありがとう。 – user512530

関連する問題