首先,參考文檔:https://blog.stackmob.com/2013/03/objective-c-tip-of-the-month-optional-frameworks/
強引用(Required)的framework是一定會被加載到內存的,但是弱引用(Optional)的framework只在需要時才會被載入內存,這對於比較大的framework來說,在最初加載的時候會省很多時間。
簡單解釋一下,有一些庫如Social.framework 和 AdSupport.framework,是在iOS6之后才被引入的,還有一些更新了新特性的只能在iOS6+上可用。當你添加一個framework到你的工程里,他們被默認強引用(Required),然而,當你最終把程序配置在運行5.0的設備上時,你會發現它通不過最戶的加載,原因就在於這些庫是不被iOS5.0支持的,就需要我們把這些庫的引用改為Optional.
其次,如果你遇見了這個錯誤:duld:Library not found………………說明你有不應該強引用的可存在,這個錯誤報告里都會指明有哪些庫需要弱引用。