Cocoa - loadNibNamed:owner:topLevelObjects: from loaded bundle
In a document based Cocoa app, I am instantiating several objects (plugins) from external bundles using: - (NSMutableArray *)getPluginsOfType:(Class)type; { NSBundle *main = [NSBundle mainBundle]; NSArray *allPlugins = [main pathsForResourcesOfType:@"bundle" inDirectory:@"../PlugIns"]; NSMutableArray *availablePlugins = [NSMutableArray array]; for (NSString *path in allPlugins) { NSBundle *pluginBundle = [NSBundle bundleWithPath:path]; [pluginBundle load]; Class principalClass = [pluginBundle principalClass]; [availablePlugins addObject:principalClass]; } return availablePlugins; } Within each