关于ios:如何包含在Swift语言中

How to include in Swift language

本问题已经有最佳答案,请猛点这里访问。

我有一个客观的C类

1
#include

但如何将其包含在swift语言中呢?


不能在Swift源代码文件中直接包含C头文件。相反,将C头包含在目标C头文件中,并将包含所有所需目标C头的桥接头添加到Xcode项目中。


如果导入FoundationDarwin,则可以使用中定义的某些函数。

然而,了解如何使用它们需要一些工作。您应该创建一个操场或使用命令行repl-to-experiment。例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ xcrun swift
"crashlog" and"save_crashlog" command installed, use the"--help" option for detailed help
"malloc_info","ptr_refs","cstr_refs", and"objc_refs" commands have been installed, use the"--help" options on these commands for detailed help.
Welcome to Swift!  Type :help for assistance.
  1> import Foundation
  2> inet_addr("10.0.1.1")
$R6: in_addr_t = {
  value = 16842762
}
  3> var a = in_addr(s_addr: 16842762)
a: in_addr = {
  s_addr = {
    value = 16842762
  }
}
  4> inet_netof(a)
$R7: in_addr_t = {
  value = 10
}
  5>

您可能会发现处理C字符串的函数(如inet_ntoa)太难处理。您可能更容易用Objective-C编写一个包装类,它为您感兴趣的每个函数提供一个类方法。类方法可以在原始C字符串和NSStrings之间进行转换。然后您可以从swift代码调用这个objective-c包装器的类方法。