代码之家  ›  专栏  ›  技术社区  ›  alexyorke

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

  •  8
  • alexyorke  · 技术社区  · 14 年前

    我有一个helper应用程序,它在主应用程序的应用程序包中(在参考资料中)。我不知道如何从包内获取应用程序的路径并启动它。

    2 回复  |  直到 14 年前
        1
  •  11
  •   d11wtq Vadim Baryshev    14 年前

    我不确定我是否完全理解这个问题。我想你是说你有一个应用程序(我们称之为PrimaryApplication.app),在它的资源目录中有一个你需要启动的应用程序(我们称之为Helper.app)。在这种情况下你用 NSBundle -bundlePath 若要获取当前运行的应用程序的路径,请从此处将路径附加到帮助程序。你可以用 NSWorkspace 在知道应用程序的路径后启动该应用程序。

    NSBundle *mainBundle = [NSBundle mainBundle];
    NSString *helperAppPath = [[mainBundle bundlePath]
      stringByAppendingString:@"/Contents/Resources/Helper.app"];
    
    [[NSWorkspace sharedWorkspace] launchApplication:helperAppPath];
    
        2
  •  2
  •   Peter Hosey    14 年前

    在核心基础上, CFBundleCopyResourceURL 应该可以得到应用程序的url。

    在可可中, NSBundle 相当于 pathForResource:ofType: URLForResource:withExtension: 方法。