---
title: CBPeripheralManagerDelegate
framework: corebluetooth
role: symbol
role_heading: Protocol
path: corebluetooth/cbperipheralmanagerdelegate
---

# CBPeripheralManagerDelegate

A protocol that provides updates for local peripheral state and interactions with remote central devices.

## Declaration

```swift
protocol CBPeripheralManagerDelegate : NSObjectProtocol
```

## Overview

Overview The delegate of a CBPeripheralManager object must adopt the CBPeripheralManagerDelegate protocol, which consists of numerous optional methods and one required method. The delegate uses the protocol’s optional methods to verify publishing and advertising, and to monitor read, write, and subscription requests from remote central devices. The protocol’s required one method, peripheralManagerDidUpdateState(_:), which Core Bluetooth calls whenever the peripheral manager’s state updates to indicate whether the peripheral manager is available.

## Topics

### Monitoring Changes to the Peripheral Manager’s State

- [peripheralManagerDidUpdateState(_:)](corebluetooth/cbperipheralmanagerdelegate/peripheralmanagerdidupdatestate(_:).md)
- [peripheralManager(_:willRestoreState:)](corebluetooth/cbperipheralmanagerdelegate/peripheralmanager(_:willrestorestate:).md)
- [Peripheral Manager State Restoration Options](corebluetooth/peripheral-manager-state-restoration-options.md)

### Adding Services

- [peripheralManager(_:didAdd:error:)](corebluetooth/cbperipheralmanagerdelegate/peripheralmanager(_:didadd:error:).md)

### Advertising Peripheral Data

- [peripheralManagerDidStartAdvertising(_:error:)](corebluetooth/cbperipheralmanagerdelegate/peripheralmanagerdidstartadvertising(_:error:).md)

### Monitoring Subscriptions to Characteristic Values

- [peripheralManager(_:central:didSubscribeTo:)](corebluetooth/cbperipheralmanagerdelegate/peripheralmanager(_:central:didsubscribeto:).md)
- [peripheralManager(_:central:didUnsubscribeFrom:)](corebluetooth/cbperipheralmanagerdelegate/peripheralmanager(_:central:didunsubscribefrom:).md)
- [peripheralManagerIsReady(toUpdateSubscribers:)](corebluetooth/cbperipheralmanagerdelegate/peripheralmanagerisready(toupdatesubscribers:).md)

### Receiving Read and Write Requests

- [peripheralManager(_:didReceiveRead:)](corebluetooth/cbperipheralmanagerdelegate/peripheralmanager(_:didreceiveread:).md)
- [peripheralManager(_:didReceiveWrite:)](corebluetooth/cbperipheralmanagerdelegate/peripheralmanager(_:didreceivewrite:).md)

### Using L2CAP Channels

- [peripheralManager(_:didPublishL2CAPChannel:error:)](corebluetooth/cbperipheralmanagerdelegate/peripheralmanager(_:didpublishl2capchannel:error:).md)
- [peripheralManager(_:didUnpublishL2CAPChannel:error:)](corebluetooth/cbperipheralmanagerdelegate/peripheralmanager(_:didunpublishl2capchannel:error:).md)
- [peripheralManager(_:didOpen:error:)](corebluetooth/cbperipheralmanagerdelegate/peripheralmanager(_:didopen:error:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Peripherals

- [CBPeripheral](corebluetooth/cbperipheral.md)
- [CBPeripheralDelegate](corebluetooth/cbperipheraldelegate.md)
- [CBPeripheralManager](corebluetooth/cbperipheralmanager.md)
- [CBAttribute](corebluetooth/cbattribute.md)
- [CBAttributePermissions](corebluetooth/cbattributepermissions.md)
