Я развиваюсь на более старом Mac. У меня нет доступа к более новым компьютерам Mac с Xcode 3.1, но я хочу убедиться, что мой исходный код будет работать на них. До сих пор было довольно легко, все, что мне нужно сделать, это игнорировать что-либо с «устаревшим» рядом с его именем, но изменение с NIB на XIB вызывает отвращение. То, что я прочитал, похоже, подразумевает, что XIBs скомпилированы в NIB во время сборки Release, но, возможно, они не во время сборки Debug.Как [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 не существует? Или XIBs превращаются в NIB каждый раз, когда приложение компилируется, время, и мне не нужно беспокоиться об этом?
Он работает так же, как и в любой другой среде разработки. Это метод Cocoa, а не функция Xcode IDE. Какао, в конечном счете, является частью операционной системы, поэтому, о какой версии ОС вы спрашиваете? –