gpt4 book ai didi

ios 在模拟器和设备中检测连接的网络名称

转载 作者:行者123 更新时间:2023-11-29 02:46:05 25 4
gpt4 key购买 nike

我尝试使用此代码获取iOS模拟器连接的网络名称

-(void)getNetworkName
{
CFArrayRef myArray = CNCopySupportedInterfaces();
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
NSDictionary *dict = ( NSDictionary*) myDict;
NSString* ssid = [dict objectForKey:@"SSID"];

NSString * netWorkName = [NSString stringWithFormat:@"%@",ssid];

NSLog(@"%@",netWorkName);

}

它在设备上运行良好,但在 iOS 模拟器上运行时

 CFArrayRef myArray = CNCopySupportedInterfaces();

抛出 exc_bad_acess 请帮助我在模拟器中获取网络名称。

最佳答案

CNCopySupportedInterfaces() 在模拟器中返回 nil。您正在尝试访问 CFArrayGetValueAtIndex(myArray, 0) 中数组的第一个元素,这会导致应用程序崩溃。

试试下面的代码。它仅在数组包含某些元素时才访问该数组。

- (NSString *)getNetworkName {
// Does not work on the simulator.
NSString *ssid = nil;
NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
for (NSString *ifnam in ifs) {
NSDictionary *info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
if (info[@"SSID"]) {
ssid = info[@"SSID"];
}
}
return ssid;
}

关于ios 在模拟器和设备中检测连接的网络名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25113027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com