2017-10-16 58 views
0

最近开始编码雨燕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); 
...... 

} 

请建议我解决,谢谢提前

回答

0

由于从迅速语言的理解,我们不能直接通过尊重就像我们在如何做到让函数地址“ C”

在急速的,只有这样,才能通过符号函数地址,一旦你建立的程序,使用objdumpnm得到的功能,你需要传递给C调用程序作为功能POIN符号ters

这是完全手动的过程。我能够以这种方式实现。