gpt4 book ai didi

swift - 如何将库导入 CLI 中使用的 swift 代码?

转载 作者:行者123 更新时间:2023-12-03 18:41:38 27 4
gpt4 key购买 nike

我想做的事
我想尝试通过 CLI 上的 swift 库通过 API 获取子文件。
我正在使用库 Alamofire,但我不明白如何导入 swift 库。
也许在导入之前需要一些任务(构建?链接?)但我找不到如何记录...
你能教我怎么做吗?
问题

$ swift getAPI.swift
getAPI.swift:1:8: error: no such module 'Alamofire'
import Alamofire
^
源代码
import Alamofire

func getArticles(){
Alamofire.request(.GET, "https://qiita.com/api/v2/items")
.responseJSON { response in
print(response.result.value )
}
}

getArticles()

最佳答案

这应该有助于运行一次性脚本和使用 Swift REPL。但是,要为命令行构建简单的工具,我建议使用 Swift Package Manager因为它会为您处理链接和依赖项管理。

要将您的脚本代码链接到 Alamofire 库,swift 编译器必须知道库所在的位置。默认情况下,它会搜索/Library/Frameworks,但我们可以提供选项来告诉它在哪里查看。正在检查 swift --help ,我们看到以下选项(以及许多其他选项)。

USAGE: swift [options] <inputs>

OPTIONS:
-F <value> Add directory to framework search path
-I <value> Add directory to the import search path
-L <value> Add directory to library link search path

您提供的目录必须包含要导入的库的已编译二进制文件。
  • 导入 .swiftmodule二进制文件,使用 -I
  • 导入 .framework二进制文件,使用 -F
  • 要链接到 libsqlite3.0.dylib 等库,请使用 -L

  • 我认为 Carthage 和 CocoaPods 将构建框架,而 Swift Package Manager 将构建 .swiftmodules .所有这三个都应该将二进制文件放在非常可预测的位置。不同种类的二进制文件可能都在同一个中,这没关系。

    综合起来,如果您使用 SPM 构建,您的调用可能如下所示:
    $ swift -I .build/debug/

    但是如果您使用 Carthage 管理依赖项,它可能看起来像这样:
    $ swift -F ./Carthage/Build/iOS

    如需进一步阅读,我发现这些资源很有用:
  • krakendev.io/blog/scripting-in-swift
  • realm.io/news/swift-scripting/

  • 更新: Swift 包管理器现在也可以为您处理这个问题!如果您将脚本编写为包并包含一堆依赖项,例如 Alamofire,您现在可以在 REPL 中测试它们。刚刚 cd进入你的包目录并使用 swift run --repl 启动它.见 the swift.org blog更多细节。

    关于swift - 如何将库导入 CLI 中使用的 swift 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43421477/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com