【问题标题】:What is the difference between "import" of framework and "linking" with framework?框架的“导入”和与框架的“链接”有什么区别?
【发布时间】:2023-03-21 20:52:01
【问题描述】:

我是 Xcode 和 Swift 语言的新手。我试图了解 ViewController 中“导入”和项目中“框架导入”的用法。 示例:如果我使用 CoreLocation,我只需要在我的 ViewController 中导入 CoreLocation,还是我也需要在我的项目中导入 CoreLocation.framework? 我这么说是因为一切都很好,只有在我的 ViewController 顶部使用 import CoreLocation,而不导入它的框架。

谢谢!

【问题讨论】:

    标签: swift import frameworks xcode6 core-location


    【解决方案1】:

    源代码中的import 有助于您的代码编译,确保找到正确的标头。 “项目设置”中“构建阶段”的“将二进制文件与库链接”部分(现在也包括在“链接库和框架”下的“摘要”选项卡中)指定您的目标代码将与哪些框架和库链接。

    过去我们总是需要分别指定这两个,但现在有一个项目设置“自动链接框架”,如果你在源代码中import它,它会自动将框架链接到你的项目。您还必须打开“启用模块”。

    【讨论】:

    • 所以我只需要在我的源代码中添加 import 而不添加框架,如果“自动链接框架”打开?
    • 是的,对于框架。对于库(例如 libsqlite3.0.dylib 等),您仍然需要手动添加它们,但对于框架,它应该自动添加它们。请注意,您需要同时启用“自动链接框架”“启用模块”才能使其正常工作。
    • 是的,它们都打开了。例如:在我的应用程序中,我使用 MapKit 和 CoreLocation。在此之前,我在“功能”部分设置了地图。现在没有手动链接框架,我将其设置为关闭。正常吗?
    • 要使用地图,我相信您确实需要打开“地图”功能。但是您不需要手动将 CoreLocation 添加到链接框架列表中。只需拥有import CoreLocation 就足够了(但是,要请求授权以确定用户的位置,您确实需要在 plist 中添加适当的授权请求密钥)。权利和 plist 设置完全不同。 “自动链接框架”所做的一切就是让您不必手动链接到各种框架,而只需导入它就可以了。
    猜你喜欢
    • 2019-06-05
    • 1970-01-01
    • 2022-10-13
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 2010-10-17
    • 2011-04-15
    相关资源
    最近更新 更多