Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift中的MobileWiFi框架回调_Ios_Objective C_Swift_Frameworks - Fatal编程技术网

Ios Swift中的MobileWiFi框架回调

Ios Swift中的MobileWiFi框架回调,ios,objective-c,swift,frameworks,Ios,Objective C,Swift,Frameworks,对于一个私人项目,我正在尝试使用Swift中的私有MobileWiFi框架 我发现这个网站: 在Objective-C中,它像一个符咒一样工作,但我想将代码转换为Swift 我已经将函数“检索已知网络列表”转换为Swift,该函数正在工作 现在我正在尝试转换“获取WiFi信号强度”功能,但它使用回调函数,我已经尝试了很多,但无法让它工作 #include <MobileWiFi.h> static WiFiManagerRef _manager; static void sc

对于一个私人项目,我正在尝试使用Swift中的私有MobileWiFi框架

我发现这个网站: 在Objective-C中,它像一个符咒一样工作,但我想将代码转换为Swift

我已经将函数“检索已知网络列表”转换为Swift,该函数正在工作

现在我正在尝试转换“获取WiFi信号强度”功能,但它使用回调函数,我已经尝试了很多,但无法让它工作

   #include <MobileWiFi.h>

static WiFiManagerRef _manager;
static void scan_callback(WiFiDeviceClientRef device, CFArrayRef results, CFErrorRef error, void *token);

int main(int argc, char **argv)
{
    _manager = WiFiManagerClientCreate(kCFAllocatorDefault, 0);

    CFArrayRef devices = WiFiManagerClientCopyDevices(_manager);
    if (!devices) {
        fprintf(stderr, "Couldn't get WiFi devices. Bailing.\n");
        exit(EXIT_FAILURE);
    }

    WiFiDeviceClientRef client = (WiFiDeviceClientRef)CFArrayGetValueAtIndex(devices, 0);

    WiFiManagerClientScheduleWithRunLoop(_manager, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
    WiFiDeviceClientScanAsync(client, (CFDictionaryRef)[NSDictionary dictionary], scan_callback, 0);

    CFRelease(devices);

    CFRunLoopRun();

        return 0;
}

static void scan_callback(WiFiDeviceClientRef device, CFArrayRef results, CFErrorRef error, void *token)
{
    NSLog(@"Finished scanning! networks: %@", results);

    WiFiManagerClientUnscheduleFromRunLoop(_manager);
    CFRelease(_manager);

    CFRunLoopStop(CFRunLoopGetCurrent());
}
#包括
静态wifimanager\u管理器;
静态void scan_回调(wifidevicclientref设备、CFArrayRef结果、CFErrorRef错误、void*令牌);
int main(int argc,字符**argv)
{
_manager=WiFiManagerClientCreate(kcfalocatordefault,0);
CFArrayRef devices=WiFiManagerClientCopyDevices(_manager);
如果(!设备){
fprintf(stderr,“无法获取WiFi设备。Bailing.\n”);
退出(退出失败);
}
WiFiDeviceClientRef客户端=(WiFiDeviceClientRef)CFArrayGetValueAtIndex(设备,0);
WiFiManagerClientScheduleWithRunLoop(_manager,CFRunLoopGetCurrent(),kCFRunLoopDefaultMode);
WiFiDeviceClientScanAsync(客户端,(CFDictionaryRef)[NSDictionary dictionary],扫描\ U回调,0);
释放装置;
CFRunLoopRun();
返回0;
}
静态无效扫描_回调(WiFiDeviceClientRef设备、CFArrayRef结果、CFErrorRef错误、void*令牌)
{
NSLog(@“已完成扫描!网络:%@”,结果);
WiFiManagerClientUnscheduleFromRunLoop(_manager);
CFRelease(_经理);
CFRunLoopStop(CFRunLoopGetCurrent());
}
有人能给我解释一下如何用swift语言使用这样的回调函数吗

提前谢谢

我找到了这个函数:

pcap_loop(pcapSession, numberOfPackets,
{
    (args: UnsafeMutablePointer<u_char>,
     pkthdr:UnsafePointer<pcap_pkthdr>,
     packet: UnsafePointer<u_char>) ->Void in

            // singleton call
            let pa = PacketAnalyser.sharedInstance
            pa.Process()
},
nil)
pcap_循环(pcapSession,numberOfPackets,
{
(args:unsafemeutablepointer,
pkthdr:UnsafePointer,
数据包:UnsafePointer)->Void in
//单人电话
设pa=PacketAnalyser.sharedInstance
pa.过程()
},
零)
在本网站上:

我认为这是解决我问题的可行办法。有人能给我解释一下我是否可以使用这个例子吗?

我找到了这个函数:

pcap_loop(pcapSession, numberOfPackets,
{
    (args: UnsafeMutablePointer<u_char>,
     pkthdr:UnsafePointer<pcap_pkthdr>,
     packet: UnsafePointer<u_char>) ->Void in

            // singleton call
            let pa = PacketAnalyser.sharedInstance
            pa.Process()
},
nil)
pcap_循环(pcapSession,numberOfPackets,
{
(args:unsafemeutablepointer,
pkthdr:UnsafePointer,
数据包:UnsafePointer)->Void in
//单人电话
设pa=PacketAnalyser.sharedInstance
pa.过程()
},
零)
在本网站上:


我认为这是解决我问题的可行办法。有人能解释一下我是否可以使用这个例子吗?

我相信这只是OSX的一个解决方案,因为在iOS上的pcap嗅探不会产生WiFi网络名称我相信这只是OSX的一个解决方案,因为在iOS上的pcap嗅探不会产生WiFi网络名称