Objective c OSX应用程序的向后兼容性
好的,我的情况如下:Objective c OSX应用程序的向后兼容性,objective-c,macos,cocoa,sdk,app-store,Objective C,Macos,Cocoa,Sdk,App Store,好的,我的情况如下: 我在10.9(Mavericks)机器上安装了Xcode 5.1.1 我想构建我的应用程序,使其在10.6及更高版本上运行 已安装SDK:10.6、10.8、10.9 我必须做什么才能确保它在应用商店中显示为“10.6及更高版本”兼容 我成功地将基本SDK设置为10.8或10.9,并将部署目标设置为10.6,使其编译良好。这够了吗 p.S.我也尝试过用Base SDK编译10.6,但是有太多错误需要修复,如果我能避免的话会更好 有什么想法吗?有;使用部署目标为10.6
- 我在10.9(Mavericks)机器上安装了Xcode 5.1.1
- 我想构建我的应用程序,使其在10.6及更高版本上运行
- 已安装SDK:10.6、10.8、10.9
10.8
或10.9
,并将部署目标设置为10.6
,使其编译良好。这够了吗
p.S.我也尝试过用Base SDK编译
10.6
,但是有太多错误需要修复,如果我能避免的话会更好
有什么想法吗?有;使用部署目标为10.6的10.9 SDK可以正常工作
您可能会发现您有条件代码路径,这些路径必须在运行时确定,可能基于
respondsToSelector
,这需要一些#pragma
才能成功编译。部署目标定义了您的应用程序在运行时所需的最低操作系统版本。基本SDK定义了编译时可用的API功能的级别 因此,在构建可在10.6及以上版本上运行的应用程序时,您可以使用10.9作为基本SDK。
当应用程序在10.6机器上运行时,您只需确保避免使用10.7/10.8/10.9 API的代码路径 正如特洛伊敌人已经指出的,您可以使用
respondsToSelector:
检查某个类/方法是否可用。另一种方法是使用NSAppKitVersionNumber:
if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_8)
<代码>(楼层(NasaPkyToLoNo.No.))是否可以使用“代码>PrimaMaule/Case>条件来确定是否使用基于系统版本的某个基础方法?我不想检查在运行时是否应该调用某个方法……