Ich entwickle auf einem älteren Mac. Ich habe keinen Zugriff auf neuere Macs mit Xcode 3.1, aber ich möchte sicherstellen, dass mein Quellcode auf ihnen funktioniert. Bisher war es ziemlich einfach, alles was ich zu tun habe ist, alles zu ignorieren, was neben seinem Namen "veraltet" heißt, aber der Wechsel von NIBs zu XIBs hat mich irgendwie zum Stolpern gebracht. Die Dinge, die ich gelesen habe, implizieren, dass XIBs während eines Release-Builds in NIBs kompiliert werden, aber vielleicht nicht während eines Debug-Builds.Wie funktioniert [NSBundle loadNibNamed: owner:] in Xcode 3.1?
Was würde dies in Xcode 3.1 tun?
#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);
}
Fehler beim Debuggen, weil MainMenu.nib nicht existiert? Oder werden XIBs jedes Mal in NIBs umgewandelt, wenn eine Anwendung kompiliert wird, und ich muss mir darüber keine Gedanken machen?
Es funktioniert genauso wie in jeder anderen Entwicklungsumgebung. Das ist eine Cocoa-Methode, keine Funktion der Xcode-IDE. Cocoa ist letztendlich Teil des Betriebssystems, also nach welcher Version des Betriebssystems fragen Sie? –