【发布时间】:2014-10-08 09:51:41
【问题描述】:
在编译时使用宏 __IPHONE_OS_VERSION_MIN_REQUIRED 确定应用的部署目标非常简单。查找应用程序在运行时运行的当前 iOS 版本也很简单。我试图在运行时找出应用程序的部署目标。我需要在已经编译的框架中使用它。是否有公共 API 方法来确定这一点?我找不到。
只是为了清楚。我希望在运行时从我的框架中获取 iOS 应用程序的部署目标。不是编译时间。在我的框架中,我需要提醒框架的用户,如果他们的部署目标太远,某些功能将无法工作。
我在编译时很容易做到这一点,但我的框架已经编译,我不想要求框架的用户在他们的代码中添加宏,以便我的框架确定他们的部署目标。
【问题讨论】:
-
如果您解释了为什么需要在运行时了解部署目标,这可能会有所帮助。这很不寻常。这样做的目的是什么?
-
还有
LSMinimumSystemVersion,但是可以手动改成与部署目标不匹配。 -
Josh,抱歉,我没有指定我希望在 iOS 中执行此操作。这在 iOS 中是私有的。
-
为什么不在公共头文件中包含编译时逻辑并通过编译时警告警告它们?更好的是,关于使用特定功能的编译时警告,也许是通过可用性属性?
-
不知道这是否对 iOS 有帮助,但在 OS X 上,此信息可在
LC_VERSION_MIN_MACOSXMach-O 加载器命令中获得,该命令可通过使用 @987654324 访问的 Mach-O 标头访问@。您将使用 /usr/include/mach-o/loader.h 中定义的 Mach-O 结构来解析加载命令。
标签: objective-c runtime deployment-target