从应用程序包启动应用程序

ale*_*rke 8 cocoa objective-c

我有一个帮助应用程序,它位于我的主应用程序的应用程序包中(在参考资料中).我不确定如何从bundle中获取应用程序的路径并启动它.

d11*_*wtq 11

我不确定我完全理解这个问题.我想你说你有一个应用程序(我们称之为PrimaryApplication.app),在它的Resources目录中有一个你需要启动的应用程序(我们称之为Helper.app).在这种情况下,您使用NSBundle's -bundlePath来获取当前正在运行的应用程序的路径,然后从那里将路径附加到您的帮助程序.NSWorkspace一旦知道应用程序的路径,就可以使用它来启动它.

NSBundle *mainBundle = [NSBundle mainBundle];
NSString *helperAppPath = [[mainBundle bundlePath]
  stringByAppendingString:@"/Contents/Resources/Helper.app"];

[[NSWorkspace sharedWorkspace] launchApplication:helperAppPath];
Run Code Online (Sandbox Code Playgroud)