将函数分配给SWIFT 3中的空指针列表时出错?
问题描述:
最近开始编码雨燕3.0的Xcode 8.0 面临的问题迅速指派类函数地址无效,其结构定义指针列表将函数分配给SWIFT 3中的空指针列表时出错?
file.h
typedef struct MYStruct
{
void ** funptr; //The list of function pointer addr
size_t funCount;
} MYStruct;
file1.swift
.....
func Dummy()
{
}
func utility()
{
var myStructObj = MYStruct()
myStructObj.funptr = &Dummy() //Error: Cannot assign value of type '() -> Int32' to type 'UnsafeMutablePointer<UnsafeMutableRawPointer?>!'
......
//需要将此结构传递给C函数,在C函数中它会调用推迟函数来执行
cfunc(&myStructObj);
......
}
请建议我解决,谢谢提前
答
由于从迅速语言的理解,我们不能直接通过尊重就像我们在如何做到让函数地址“ C”
在急速的,只有这样,才能通过符号函数地址,一旦你建立的程序,使用objdump
或nm
得到的功能,你需要传递给C
调用程序作为功能POIN符号ters
这是完全手动的过程。我能够以这种方式实现。