0

古いMacで開発しています。Xcode 3.1 を実行する新しい Mac にアクセスすることはできませんが、ソースコードがそれらで動作することを確認したいと考えています。名前の横に「非推奨」が付いているものを無視するだけで済みますが、NIB から XIB への変更はちょっとつまずきました。私が読んだことは、リリース ビルド中に XIB が NIB にコンパイルされることを示唆しているように見えますが、デバッグ ビルド中にはコンパイルされない可能性があります。

これは 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 に変換されるので、これについて心配する必要はありませんか?

4

1 に答える 1

1

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

于 2010-11-18T22:19:21.110 に答える