2015-10-09 45 views
4

链接的框架和库有一个必需可选选项。Xcode和可选的框架

有人可以解释一种情况,以及如何使用可选框架?我可以看到假设情况,我有一些测试数据和IF框架包括我想要启用某种功能,如果它不包括,也许我不会做点什么......

但除此之外,我在茫然,(如果存在一个代码示例将是真棒),当你想使用一个可选的框架

回答

6

可选链接是有用的,如果你的目标较旧的OS版本中某个框架可能还不可用。在这种情况下,您可以将给定框架的链接设置为可选,并且如果dlopen无法找到给定的框架,这会导致程序在启动时不会崩溃。

然后在你的代码,你可以把后卫陈述围绕这个框架的使用,以避免崩溃B/C使用未解决的符号:

if (MyWeakLinkedFunction != NULL) 
{ 
    result = MyWeakLinkedFunction(); // this function comes from a weakly/optionally linked framework 
} 

参见:Frameworks and Weak Linking