将所有框架链接为可选框架

时间:2016-04-05 08:34:02

标签: ios objective-c frameworks dynamic-linking

我阅读this documentation article关于库和框架链接的内容,以下部分引起了我的注意:

  

...只有在需要时才会加载可选框架。如果将从不需要的大型库指定为Optional,则应用程序的初始加载速度会更快。

所以我问为什么我不会将所有框架设置为B2:B,如果它们会在必要时加载?会有什么缺点?

2 个答案:

答案 0 :(得分:1)

使用可选库需要额外的代码,因为它使用weak linking

if (MyWeakLinkedFunction != NULL)
{
    result = MyWeakLinkedFunction();
}

这使得使用图书馆有点痛苦;我希望知道在程序加载时符号可用,如果它们不是O / S可以处理告诉用户。

答案 1 :(得分:0)

我猜是因为这条线

  

应用程序的初始加载......

如果您设置为optionaly,那么您可能会在应用程序中稍后加载“大”负载,这可能是不需要的。因此,尽早加载框架将减少加载时间。

这就是我想象的