【发布时间】:2010-11-18 18:26:04
【问题描述】:
我正在使用较旧的 Mac 进行开发。我无法访问运行 Xcode 3.1 的较新 Mac,但我想确保我的源代码可以在它们上运行。到目前为止这很容易,我所要做的就是忽略名称旁边带有“已弃用”的任何内容,但是从 NIB 到 XIB 的变化让我有点不知所措。我读过的东西似乎暗示 XIB 在 Release 构建期间被编译成 NIB,但在 Debug 构建期间它们可能不会。
这在 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,期间,我不必担心这些?
【问题讨论】:
-
它的工作方式与在任何其他开发环境中的工作方式相同。这是一个 Cocoa 方法,而不是 Xcode IDE 的一个特性。 Cocoa 最终是操作系统的一部分,那么,您要问的是哪个版本的操作系统?