Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
Cocoa 如何获取当前网络位置名称?_Cocoa_Networking_Macos_System Configuration - Fatal编程技术网

Cocoa 如何获取当前网络位置名称?

Cocoa 如何获取当前网络位置名称?,cocoa,networking,macos,system-configuration,Cocoa,Networking,Macos,System Configuration,在系统网络首选项中有一些位置名称。如何获取当前或活动网络位置名称以及所有网络位置的列表我想SystemConfiguration.framework支持这一点,但我不知道要使用哪个API。提前感谢您的回答关于Devara Gudda您可以使用来获取首选项,然后仅获取网络位置。将获取一个位置的名称 SCPreferencesRef prefs = SCPreferencesCreate(NULL, @"SystemConfiguration", NULL); NSArray *locations

在系统网络首选项中有一些位置名称。如何获取当前或活动网络位置名称以及所有网络位置的列表
我想SystemConfiguration.framework支持这一点,但我不知道要使用哪个API。

提前感谢您的回答

关于
Devara Gudda

您可以使用来获取首选项,然后仅获取网络位置。将获取一个位置的名称

SCPreferencesRef prefs = SCPreferencesCreate(NULL, @"SystemConfiguration", NULL);
NSArray *locations = (NSArray *)SCNetworkSetCopyAll(prefs);
for (id item in locations) {
    NSString *name = (NSString *)SCNetworkSetGetName((SCNetworkSetRef)item);
    ...
}
CFRelease(locations);
CFRelease(prefs);

阅读“”了解更多信息。

这是一个swift 5.1实现,用于获取所有可用网络位置的列表

    func getAvailabeNetworkLocation() -> [String]
{
    var results = [String]()

    
    var prefs : SCPreferences
    prefs = SCPreferencesCreate (nil, "Softech" as CFString, nil)!
    var sets : CFArray
    sets = SCNetworkSetCopyAll (prefs)!
    
    let count = CFArrayGetCount(sets) as Int
    var newSet : SCNetworkSet? = nil
    var bFound : Bool = false
    
   

    
    for nIndex  in 0..<count {
     let mySet = CFArrayGetValueAtIndex (sets, nIndex)
     let key = Unmanaged<SCNetworkSet>.fromOpaque(mySet!)
        newSet = key.takeUnretainedValue()
        let name : String = SCNetworkSetGetName(newSet!)! as String
        print("Network location name: \(name)")
     results.append(name)
    }
    return results
}
func GetAvailableNetworkLocation()->[字符串]
{
变量结果=[String]()
var prefs:SCPreferences
prefs=SCPreferencesCreate(nil,“Softech”作为CFString,nil)!
变量集:CFArray
sets=SCNetworkSetCopyAll(首选)!
让count=CFArrayGetCount(集合)为Int
var新闻集:SCNetworkSet?=nil
var bFound:Bool=false

对于0中的nIndex..谢谢,它正在工作。我正在使用SCNetworkSetCopyCurrent获取当前n/w位置。