<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "CoreWLAN",
  "identifier" : "/documentation/CoreWLAN",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "Core WLAN"
    ],
    "preciseIdentifier" : "CoreWLAN"
  },
  "title" : "Core WLAN"
}
-->

# Core WLAN

Query AirPort interfaces and choose wireless networks.

## Overview

The CoreWLAN framework provides APIs for querying AirPort interfaces and choosing networks.

You access the Wi-Fi subsystem by working with a [`CWWiFiClient`](/documentation/CoreWLAN/CWWiFiClient) instance. This client object provides methods to obtain a handle on all of the system’s Wi-Fi interfaces, represented by [`CWInterface`](/documentation/CoreWLAN/CWInterface) objects. You can also use the client to register to receive Wi-Fi event notifications. You assign a delegate conforming to the [`CWEventDelegate`](/documentation/CoreWLAN/CWEventDelegate) protocol to process these notifications.

Because creating the client object is resource intensive, it’s usually best to work with a single object over the life of your app rather than creating a series of short lived instances. For convenience, the client class defines a shared instance singleton that you can use for this purpose.

You can use the CoreWLAN framework in an app that adopts App Sandbox without any special exceptions as long as you use the interface objects vended from a client instance. If you initialize interface objects directly, you incur low level system socket accesses that are not considered sandbox safe. For more information about App Sandbox, read [App Sandbox Design Guide](https://developer.apple.com/library/archive/documentation/Security/Conceptual/AppSandboxDesignGuide/AboutAppSandbox/AboutAppSandbox.html#//apple_ref/doc/uid/TP40011183).

## Topics

### Classes

[`CWChannel`](/documentation/CoreWLAN/CWChannel)

Encapsulates an IEEE 802.11 channel.

[`CWConfiguration`](/documentation/CoreWLAN/CWConfiguration)

Encapsulates an immutable configuration for an AirPort WLAN interface.

[`CWInterface`](/documentation/CoreWLAN/CWInterface)

Encapsulates an IEEE 802.11 interface.

[`CWMutableConfiguration`](/documentation/CoreWLAN/CWMutableConfiguration)

Encapsulates a mutable configuration for an AirPort WLAN interface.

[`CWMutableNetworkProfile`](/documentation/CoreWLAN/CWMutableNetworkProfile)

Encapsulates a mutable network profile entry.

[`CWNetwork`](/documentation/CoreWLAN/CWNetwork)

Encapsulates an IEEE 802.11 network, providing read-only accessors to various properties of the network.

[`CWNetworkProfile`](/documentation/CoreWLAN/CWNetworkProfile)

Encapsulates an immutable network profile entry.

[`CWWiFiClient`](/documentation/CoreWLAN/CWWiFiClient)

A wrapper around the entire Wi-Fi subsystem that you use to access interfaces and set up event notifications.

### Protocols

[`CWEventDelegate`](/documentation/CoreWLAN/CWEventDelegate)

The interface a Wi-Fi client object uses to notify its delegate about Wi-Fi events.

### Reference

[CoreWLANConstants.h](/documentation/CoreWLAN/corewlanconstants-h)

[CoreWLANTypes.h](/documentation/CoreWLAN/corewlantypes-h)

[CoreWLANUtil.h](/documentation/CoreWLAN/corewlanutil-h)

[CoreWLAN Enumerations](/documentation/CoreWLAN/corewlan-enumerations)

[CoreWLAN Functions](/documentation/CoreWLAN/corewlan-functions)

### Structures

[`CWCipherKeyFlags`](/documentation/CoreWLAN/CWCipherKeyFlags)

Cipher key flags.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)