---
title: CBPeripheralDelegate
framework: corebluetooth
role: symbol
role_heading: Protocol
path: corebluetooth/cbperipheraldelegate
---

# CBPeripheralDelegate

A protocol that provides updates on the use of a peripheral’s services.

## Declaration

```swift
protocol CBPeripheralDelegate : NSObjectProtocol
```

## Overview

Overview The delegate of a CBPeripheral object must adopt the CBPeripheralDelegate protocol. The delegate uses this protocol’s methods to monitor the discovery, exploration, and interaction of a remote peripheral’s services and properties. This protocol doesn’t have any required methods.

## Topics

### Discovering Services

- [peripheral(_:didDiscoverServices:)](corebluetooth/cbperipheraldelegate/peripheral(_:diddiscoverservices:).md)
- [peripheral(_:didDiscoverIncludedServicesFor:error:)](corebluetooth/cbperipheraldelegate/peripheral(_:diddiscoverincludedservicesfor:error:).md)

### Discovering Characteristics and their Descriptors

- [peripheral(_:didDiscoverCharacteristicsFor:error:)](corebluetooth/cbperipheraldelegate/peripheral(_:diddiscovercharacteristicsfor:error:).md)
- [peripheral(_:didDiscoverDescriptorsFor:error:)](corebluetooth/cbperipheraldelegate/peripheral(_:diddiscoverdescriptorsfor:error:).md)

### Retrieving Characteristic and Descriptor Values

- [peripheral(_:didUpdateValueFor:error:)](corebluetooth/cbperipheraldelegate/peripheral(_:didupdatevaluefor:error:)-1xyna.md)
- [peripheral(_:didUpdateValueFor:error:)](corebluetooth/cbperipheraldelegate/peripheral(_:didupdatevaluefor:error:)-1t3wm.md)

### Writing Characteristic and Descriptor Values

- [peripheral(_:didWriteValueFor:error:)](corebluetooth/cbperipheraldelegate/peripheral(_:didwritevaluefor:error:)-4f5ea.md)
- [peripheral(_:didWriteValueFor:error:)](corebluetooth/cbperipheraldelegate/peripheral(_:didwritevaluefor:error:)-1ybl3.md)
- [peripheralIsReady(toSendWriteWithoutResponse:)](corebluetooth/cbperipheraldelegate/peripheralisready(tosendwritewithoutresponse:).md)

### Managing Notifications for a Characteristic’s Value

- [peripheral(_:didUpdateNotificationStateFor:error:)](corebluetooth/cbperipheraldelegate/peripheral(_:didupdatenotificationstatefor:error:).md)

### Retrieving a Peripheral’s RSSI Data

- [peripheral(_:didReadRSSI:error:)](corebluetooth/cbperipheraldelegate/peripheral(_:didreadrssi:error:).md)
- [peripheralDidUpdateRSSI(_:error:)](corebluetooth/cbperipheraldelegate/peripheraldidupdaterssi(_:error:).md)

### Monitoring Changes to a Peripheral’s Name or Services

- [peripheralDidUpdateName(_:)](corebluetooth/cbperipheraldelegate/peripheraldidupdatename(_:).md)
- [peripheral(_:didModifyServices:)](corebluetooth/cbperipheraldelegate/peripheral(_:didmodifyservices:).md)

### Monitoring L2CAP Channels

- [peripheral(_:didOpen:error:)](corebluetooth/cbperipheraldelegate/peripheral(_:didopen:error:).md)

### Instance Methods

- [peripheral(_:didCompleteChannelSoundingSession:)](corebluetooth/cbperipheraldelegate/peripheral(_:didcompletechannelsoundingsession:).md)
- [peripheral(_:didReceive:error:)](corebluetooth/cbperipheraldelegate/peripheral(_:didreceive:error:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Peripherals

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