从Swift 3调用pcap_循环

从Swift 3调用pcap_循环,swift,swift3,libpcap,unsafe,swift3.0.2,Swift,Swift3,Libpcap,Unsafe,Swift3.0.2,我在试着从 pcap_循环(pcapSession,numberOfPackets, { (args:unsafemeutablepointer, pkthdr:UnsafePointer, 数据包:UnsafePointer)->Void in //让我们使用对singleton的调用来处理结果 //我们可以这样保持状态,而不必这样做 //通过将指针传递给非安全指针来进行工具切换 //然后取消引用 设pa=PacketAnalyser.sharedInstance pa.过程() }, 零)

我在试着从

pcap_循环(pcapSession,numberOfPackets,
{
(args:unsafemeutablepointer,
pkthdr:UnsafePointer,
数据包:UnsafePointer)->Void in
//让我们使用对singleton的调用来处理结果
//我们可以这样保持状态,而不必这样做
//通过将指针传递给非安全指针来进行工具切换
//然后取消引用
设pa=PacketAnalyser.sharedInstance
pa.过程()
},
零)
现在它是Swift 3,我不能编译以下错误 无法将类型为“(unsafemeutablepointer,UnsafePointer,UnsafePointer)->Void”的值转换为预期的参数类型“pcap\u handler!”

不太确定如何继续,几乎是从Swift引用C代码的新手。我读过文档,但运气不太好

谢谢

  pcap_loop(pcapSession, numberOfPackets,
        {
            (args: UnsafeMutablePointer<u_char>,
             pkthdr:UnsafePointer<pcap_pkthdr>,
             packet: UnsafePointer<u_char>) ->Void in
                    // lets handle the result using a call to a singleton 
                    // we can keep state this way, and not have to
                    // tool around by passing pointers to UnsafePointers
                    // and dereferencing later
                    let pa = PacketAnalyser.sharedInstance
                    pa.Process()
        },
        nil)