Question: For iOS (Cocoa Touch), it's possible to go to your main.m and replace the fourth argument in `UIApplicationMain(int argc, char *argv[], nil, nil)` with the class name of your app's delegate, which would then construct the views as needed. However, Cocoa (Mac) projects have the following in main.m:

```
    return NSApplicationMain(argc, (const char **)argv);

```

So the question is basically: how do you hand over an app's delegate to Cocoa apps without a MainMenu.xib?

Answer: 
You can use `setDelegate` method of `NSApplication` instance. Here is a sample:

```
AppDelegate * delegate = [[AppDelegate alloc] init];
[[NSApplication sharedApplication] setDelegate:delegate];
[NSApp run];

```

As for return value you can use `EXIT_SUCCESS`
Subclass `NSApplication`, declare your subclass's name as the `Application Class` (or similar) property in Xcode. In your subclass you may override some function that gets called when the app is initialized, maybe `-finishLaunching`?