2015-10-09 43 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