---
title: CBCentralManager
framework: corebluetooth
role: symbol
role_heading: Class
path: corebluetooth/cbcentralmanager
---

# CBCentralManager

An object that scans for, discovers, connects to, and manages peripherals.

## Declaration

```swift
class CBCentralManager
```

## Overview

Overview CBCentralManager objects manage discovered or connected remote peripheral devices (represented by CBPeripheral objects), including scanning for, discovering, and connecting to advertising peripherals. Before calling the CBCentralManager methods, set the state of the central manager object to powered on, as indicated by the CBCentralManagerState.poweredOn constant. This state indicates that the central device (your iPhone or iPad, for instance) supports Bluetooth low energy and that Bluetooth is on and available for use.

## Topics

### Initializing a Central Manager

- [init()](corebluetooth/cbcentralmanager/init().md)
- [init(delegate:queue:)](corebluetooth/cbcentralmanager/init(delegate:queue:).md)
- [init(delegate:queue:options:)](corebluetooth/cbcentralmanager/init(delegate:queue:options:).md)
- [Central Manager Initialization Options](corebluetooth/central-manager-initialization-options.md)
- [Central Manager State Restoration Options](corebluetooth/central-manager-state-restoration-options.md)

### Establishing or Canceling Connections with Peripherals

- [connect(_:options:)](corebluetooth/cbcentralmanager/connect(_:options:).md)
- [Peripheral Connection Options](corebluetooth/peripheral-connection-options.md)
- [cancelPeripheralConnection(_:)](corebluetooth/cbcentralmanager/cancelperipheralconnection(_:).md)

### Retrieving Lists of Peripherals

- [retrieveConnectedPeripherals(withServices:)](corebluetooth/cbcentralmanager/retrieveconnectedperipherals(withservices:).md)
- [retrievePeripherals(withIdentifiers:)](corebluetooth/cbcentralmanager/retrieveperipherals(withidentifiers:).md)

### Scanning or Stopping Scans of Peripherals

- [scanForPeripherals(withServices:options:)](corebluetooth/cbcentralmanager/scanforperipherals(withservices:options:).md)
- [Peripheral Scanning Options](corebluetooth/peripheral-scanning-options.md)
- [stopScan()](corebluetooth/cbcentralmanager/stopscan().md)
- [isScanning](corebluetooth/cbcentralmanager/isscanning.md)

### Inspecting Feature Support

- [supports(_:)](corebluetooth/cbcentralmanager/supports(_:).md)
- [CBCentralManager.Feature](corebluetooth/cbcentralmanager/feature.md)

### Monitoring Properties

- [delegate](corebluetooth/cbcentralmanager/delegate.md)

### Receiving Connection Events

- [registerForConnectionEvents(options:)](corebluetooth/cbcentralmanager/registerforconnectionevents(options:).md)
- [Peripheral Connection Options](corebluetooth/peripheral-connection-options.md)
- [CBConnectionEvent](corebluetooth/cbconnectionevent.md)
- [CBConnectionEventMatchingOption](corebluetooth/cbconnectioneventmatchingoption.md)

### Deprecated

- [CBCentralManagerState](corebluetooth/cbcentralmanagerstate.md)

## Relationships

### Inherits From

- [CBManager](corebluetooth/cbmanager.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Centrals

- [CBCentral](corebluetooth/cbcentral.md)
- [CBCentralManagerDelegate](corebluetooth/cbcentralmanagerdelegate.md)
