在Xcode中,对于任何Objective-C头文件,我们都可以查看Generated Interface,它显示了Swift在interop中的看法.
我想从命令行生成它.知道怎么做吗?
奖励任务:标题应该首先进行预编译,因此所有#imports都应该被替换.
小智 5
:type lookup在您要检查的模块上调用解释器命令。
假设您有一个名为的头文件header.h。将其放在单独的目录中,以便解释器将其识别为模块。还要在同一目录中创建一个模块映射。我们称这个目录为Mod:
./
./Mod/
/header.h
/module.modulemap
Run Code Online (Sandbox Code Playgroud)
填写以下内容:
module Mod {
header "./header.h"
export *
}
Run Code Online (Sandbox Code Playgroud)
完成后,发出如下命令:
echo "import Mod\n:type lookup Mod" | swift -I./Mod | tail -n+2 >| generated-interface.swift
Run Code Online (Sandbox Code Playgroud)
另外,您可能希望使用类似以下命令:
echo "import Mod\n:print_module Mod" | swift -deprecated-integrated-repl -I./Mod >| generated-interface.swift
Run Code Online (Sandbox Code Playgroud)
细分如下:
-I论点有助于找到我们的模块,这一点至关重要。generated-interface.swift。运行上述命令时,请确保将工作目录设置为比Mod目录高一级。
请注意,输出可能与Xcode的输出不完全相同,但是非常相似。
仅作记录,如果您想从Swift文件中生成接口,就这样:
swiftc -print-ast file.swift
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1415 次 |
| 最近记录: |