对于私人项目,我试图在Swift中使用私有MobileWiFi框架。
我找到了这个网站: http://iphonedevwiki.net/index.php/MobileWiFi.framework 在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());
}
有人可以向我解释如何在swift语言中使用这样的回调函数吗?
提前致谢!
答案 0 :(得分:0)
我发现了这个功能:
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)
在本网站上:http://diydeveloper.io/tech/2015/11/27/swift-pcap
我认为这对我的问题是一个可行的解决方案。有人可以向我解释我是否可以使用这个例子?