针对不同OS X版本的不同版本的Cocoa应用程序

时间:2013-06-04 06:02:42

标签: macos cocoa

是否可以创建一个二进制文件,并且根据OS X版本,它的行为方式不同?

关于如何实现这一点的任何想法(Cocoa和Xcode友好)?

2 个答案:

答案 0 :(得分:2)

应用程序的主要可执行文件可以是在所有版本上运行的小程序,询问OSX版本,然后加载包含所需应用程序版本的包或启动捆绑到应用程序包中的第二个可执行文件

捆绑加载选项应该更容易做,并且从用户的角度来看看更加光滑,因为只运行一个应用程序。使用另一种方法,一个应用程序将启动,然后在启动另一个应用程序时关闭,因此可能会产生视觉副作用。

答案 1 :(得分:1)

Wain做对了..使用一个应用程序并根据操作系统版本加载捆绑包

类似

int main(args) {
   NSBundle *bundle = nil;
   if(osVersion < 10.5)
          bundle = [NSBundle bundleWithURL:pathToBundleFor105InAppsBundle];
   else
          bundle = [NSBundle bundleWithURL:pathToBundleFor106andUpInAppsBundle];

   [bundle load];

   Class appDelegateClass = NSClassFromString(@"AppDelegateClass");
    DDAppDelegate = [[appDelegateClass alloc] init];
    [[NSApplication sharedApplication] setDelegate:DDAppDelegate];
    status = NSApplicationMain(argc, (const char **)argv);       
}