我只是想知道在导入标题时是否必须检查当前的ios版本。我有一个使用os5框架的应用程序。因此,如果我希望我的应用程序在以前的版本中运行,我是否必须条件导入我的标题?或者我必须在实施中管理它吗?
例如:如果我想使用Twitter / Twitter.h但希望我的应用程序在4.0中运行。 是解决方案:
类似的东西:
#if CURRENT_OS > __IPHONE_5_0
import <Twitter/Twitter.h>
#endif
或
#import <Twitter/Twitter.h>
...
- (void) myMethod
{
NSComparisonResult r = [[[UIDevice currentDevice] systemVersion] compare:@"5.0"];
if ( r >= 0 )
{
//do the thing
}
else
{
// do the workarround
}
}
提前感谢您的帮助。
BR, Smazimute
答案 0 :(得分:1)
第一种解决方案仅在编译期间有效。这意味着在运行时检查iOS版本没有用。 您可以使用它来区分同一项目中的两个目标(例如,应用程序的免费和付费版本)。
第二个解决方案在运行时是有效的,所以我认为这是在特定iOS版本上做某事的最佳解决方案,但不幸的是,在导入框架时它没有用处。 要查看iOS版本,请使用以下命令:
[[UIDevice currentDevice] systemVersion]
如果您的目标只是导入旧版iOS不支持的特定框架,那么您拥有的唯一解决方案是弱链接。