在Swift中导入C头

时间:2014-06-03 04:01:10

标签: ios malloc swift

我无法导入malloc/malloc.h以使用malloc_size()来查看对象的大小。是Swift还是我错了:import malloc/malloc.h

4 个答案:

答案 0 :(得分:7)

Unix / POSIX内容全部在Darwin模块中。

import Darwin

let r = rand()
qsort_b(buffer, 0, 10, sortFunc)

malloc也在那里,但它不会对你有好处 - 它会返回一个不透明的指针。

答案 1 :(得分:0)

您无法导入C标头。为了在Swift中导入C库(或Objective-C框架),它必须在一个模块中。我不知道包含malloc的模块。

答案 2 :(得分:0)

您是否考虑使用过桥头?

创建名为-Bridging-Header-File.h的.h文件 然后在您的项目构建设置中引用它(在“Swift编译器”下查找“Objective C Bridging Header”):

$(SRCROOT)/<Your-Project-Name>-Bridging-Header.h

现在malloc_size()应该可用

答案 3 :(得分:0)

你想使用&#34; malloc_size&#34;?你不需要导入&#34; malloc.h&#34;要做到这一点,假设你要么包括基金会或可可。

这在游乐场很好用:

import Foundation

let chars = BytePtr.alloc( 1000 )
let qty_of_bytes_allocated = malloc_size( chars )

println( qty_of_bytes_allocated )