iOS Developer Library

Developer

CoreBluetooth Framework Reference CBPeripheralDelegate Protocol Reference

Options
Deployment Target:

On This Page
Language:

CBPeripheralDelegate

Inheritance


Not Applicable

Conforms To


Import Statement


Swift

import CoreBluetooth

Objective-C

@import CoreBluetooth;

Availability


Available in iOS 5.0 and later.

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. There are no required methods in this protocol.

  • Invoked when you discover the peripheral’s available services.

    Declaration

    Swift

    optional func peripheral(_ peripheral: CBPeripheral!, didDiscoverServices error: NSError!)

    Objective-C

    - (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error

    Parameters

    peripheral

    The peripheral that the services belong to.

    error

    If an error occurred, the cause of the failure.

    Discussion

    This method is invoked when your app calls the discoverServices: method. If the services of the peripheral are successfully discovered, you can access them through the peripheral’s services property. If successful, the error parameter is nil. If unsuccessful, the error parameter returns the cause of the failure.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Swift

    import CoreBluetooth

    Availability

    Available in iOS 5.0 and later.

  • Invoked when you discover the included services of a specified service.

    Declaration

    Swift

    optional func peripheral(_ peripheral: CBPeripheral!, didDiscoverIncludedServicesForService service: CBService!, error error: NSError!)

    Objective-C

    - (void)peripheral:(CBPeripheral *)peripheral didDiscoverIncludedServicesForService:(CBService *)service error:(NSError *)error

    Parameters

    peripheral

    The peripheral providing this information.

    service

    The CBService object containing the included service.

    error

    If an error occurred, the cause of the failure.

    Discussion

    This method is invoked when you app calls the discoverIncludedServices:forService: method. If the included services of the specified service are successfully discovered, you can access them through the service’s includedServices property. If successful, the error parameter is nil. If unsuccessful, the error parameter returns the cause of the failure.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Swift

    import CoreBluetooth

    Availability

    Available in iOS 5.0 and later.

  • Invoked when you discover the characteristics of a specified service.

    Declaration

    Swift

    optional func peripheral(_ peripheral: CBPeripheral!, didDiscoverCharacteristicsForService service: CBService!, error error: NSError!)

    Objective-C

    - (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error

    Parameters

    peripheral

    The peripheral providing this information.

    service

    The service that the characteristics belong to.

    error

    If an error occurred, the cause of the failure.

    Discussion

    This method is invoked when your app calls the discoverCharacteristics:forService: method. If the characteristics of the specified service are successfully discovered, you can access them through the service's characteristics property. If successful, the error parameter is nil. If unsuccessful, the error parameter returns the cause of the failure.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Swift

    import CoreBluetooth

    Availability

    Available in iOS 5.0 and later.

  • Invoked when you discover the descriptors of a specified characteristic.

    Declaration

    Swift

    optional func peripheral(_ peripheral: CBPeripheral!, didDiscoverDescriptorsForCharacteristic characteristic: CBCharacteristic!, error error: NSError!)

    Objective-C

    - (void)peripheral:(CBPeripheral *)peripheral didDiscoverDescriptorsForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error

    Parameters

    peripheral

    The peripheral providing this information.

    characteristic

    The characteristic that the characteristic descriptors belong to.

    error

    If an error occurred, the cause of the failure.

    Discussion

    This method is invoked when your app calls the discoverDescriptorsForCharacteristic: method. If the characteristic descriptors of the specified characteristic are successfully discovered, you can access them through the characteristic’s descriptors property. If successful, the error parameter is nil. If unsuccessful, the error parameter returns the cause of the failure.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Swift

    import CoreBluetooth

    Availability

    Available in iOS 5.0 and later.

  • Invoked when you retrieve a specified characteristic’s value, or when the peripheral device notifies your app that the characteristic’s value has changed.

    Declaration

    Swift

    optional func peripheral(_ peripheral: CBPeripheral!, didUpdateValueForCharacteristic characteristic: CBCharacteristic!, error error: NSError!)

    Objective-C

    - (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error

    Parameters

    peripheral

    The peripheral providing this information.

    characteristic

    The characteristic whose value has been retrieved.

    error

    If an error occurred, the cause of the failure.

    Discussion

    This method is invoked when your app calls the readValueForCharacteristic: method, or when the peripheral notifies your app that the value of the characteristic for which notifications and indications are enabled (via a successful call to setNotifyValue:forCharacteristic:) has changed. If successful, the error parameter is nil. If unsuccessful, the error parameter returns the cause of the failure.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Swift

    import CoreBluetooth

    Availability

    Available in iOS 5.0 and later.

  • Invoked when you retrieve a specified characteristic descriptor’s value.

    Declaration

    Swift

    optional func peripheral(_ peripheral: CBPeripheral!, didUpdateValueForDescriptor descriptor: CBDescriptor!, error error: NSError!)

    Objective-C

    - (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForDescriptor:(CBDescriptor *)descriptor error:(NSError *)error

    Parameters

    peripheral

    The peripheral providing this information.

    descriptor

    The characteristic descriptor whose value has been retrieved.

    error

    If an error occurred, the cause of the failure.

    Discussion

    This method is invoked when your app calls the readValueForDescriptor: method. If successful, the error parameter is nil. If unsuccessful, the error parameter returns the cause of the failure.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Swift

    import CoreBluetooth

    Availability

    Available in iOS 5.0 and later.

  • Invoked when you write data to a characteristic’s value.

    Declaration

    Swift

    optional func peripheral(_ peripheral: CBPeripheral!, didWriteValueForCharacteristic characteristic: CBCharacteristic!, error error: NSError!)

    Objective-C

    - (void)peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error

    Parameters

    peripheral

    The peripheral providing this information.

    characteristic

    The characteristic whose value has been written.

    error

    If an error occurred, the cause of the failure.

    Discussion

    This method is invoked only when your app calls the writeValue:forCharacteristic:type: method with the CBCharacteristicWriteWithResponse constant specified as the write type. If successful, the error parameter is nil. If unsuccessful, the error parameter returns the cause of the failure.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Swift

    import CoreBluetooth

    Availability

    Available in iOS 5.0 and later.

  • Invoked when you write data to a characteristic descriptor’s value.

    Declaration

    Swift

    optional func peripheral(_ peripheral: CBPeripheral!, didWriteValueForDescriptor descriptor: CBDescriptor!, error error: NSError!)

    Objective-C

    - (void)peripheral:(CBPeripheral *)peripheral didWriteValueForDescriptor:(CBDescriptor *)descriptor error:(NSError *)error

    Parameters

    peripheral

    The peripheral providing this information.

    descriptor

    The characteristic descriptor whose value has been written.

    error

    If an error occurred, the cause of the failure.

    Discussion

    This method is invoked when your app calls the writeValue:forDescriptor: method. If successful, the error parameter is nil. If unsuccessful, the error parameter returns the cause of the failure.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Swift

    import CoreBluetooth

    Availability

    Available in iOS 5.0 and later.

  • Invoked when the peripheral receives a request to start or stop providing notifications for a specified characteristic’s value.

    Declaration

    Swift

    optional func peripheral(_ peripheral: CBPeripheral!, didUpdateNotificationStateForCharacteristic characteristic: CBCharacteristic!, error error: NSError!)

    Objective-C

    - (void)peripheral:(CBPeripheral *)peripheral didUpdateNotificationStateForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error

    Parameters

    peripheral

    The peripheral providing this information.

    characteristic

    The characteristic for which notifications of its value are to be configured.

    error

    If an error occurred, the cause of the failure.

    Discussion

    This method is invoked when your app calls the setNotifyValue:forCharacteristic: method. If successful, the error parameter is nil. If unsuccessful, the error parameter returns the cause of the failure.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Swift

    import CoreBluetooth

    Availability

    Available in iOS 5.0 and later.

  • Invoked when you retrieve the value of the peripheral’s current RSSI while it is connected to the central manager.

    Declaration

    Swift

    optional func peripheralDidUpdateRSSI(_ peripheral: CBPeripheral!, error error: NSError!)

    Objective-C

    - (void)peripheralDidUpdateRSSI:(CBPeripheral *)peripheral error:(NSError *)error

    Parameters

    peripheral

    The peripheral providing this information.

    error

    If an error occurred, the cause of the failure.

    Discussion

    This method is invoked when your app calls the readRSSI method. If successful, the error parameter is nil. If unsuccessful, the error parameter returns the cause of the failure.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Swift

    import CoreBluetooth

    Availability

    Available in iOS 5.0 and later.

    Deprecated in iOS 8.0.

  • Invoked when a peripheral’s name changes.

    Declaration

    Swift

    optional func peripheralDidUpdateName(_ peripheral: CBPeripheral!)

    Objective-C

    - (void)peripheralDidUpdateName:(CBPeripheral *)peripheral

    Parameters

    peripheral

    The peripheral providing this information.

    Discussion

    The method is invoked whenever the peripheral device’s Generic Access Profile (GAP) device name has changed. Since a peripheral device can change its GAP device name, you can implement this method if your app needs to display the current name of the peripheral device.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Swift

    import CoreBluetooth

    Availability

    Available in iOS 6.0 and later.

  • Invoked when a peripheral’s services have changed.

    Deprecation Statement

    Use the peripheral:didModifyServices: method instead.

    Declaration

    Objective-C

    - (void)peripheralDidInvalidateServices:(CBPeripheral *)peripheral

    Parameters

    peripheral

    The peripheral providing this information.

    Discussion

    Whenever any service of a peripheral changes, this method is invoked and all services that are visible to the app are invalidated. As a result, to access any services that are available on the peripheral, you must rediscover them using the discoverServices: method.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Availability

    Available in iOS 6.0 and later.

    Deprecated in iOS 7.0.

  • Invoked when a peripheral’s services have changed.

    Declaration

    Swift

    optional func peripheral(_ peripheral: CBPeripheral!, didModifyServices invalidatedServices: [AnyObject]!)

    Objective-C

    - (void)peripheral:(CBPeripheral *)peripheral didModifyServices:(NSArray *)invalidatedServices

    Parameters

    peripheral

    The peripheral providing this information.

    invalidatedServices

    A list of services that have been invalidated.

    Discussion

    This method is invoked whenever one or more services of a peripheral have changed. A peripheral’s services have changed if:

    • A service is removed from the peripheral’s database

    • A new service is added to the peripheral’s database

    • A service that was previously removed from the peripheral’s database is readded to the database at a different location

    If you previously discovered any of the services that have changed, they are provided in the invalidatedServices parameter and can no longer be used. You can use the discoverServices: method to discover any new services that have been added to the peripheral’s database or to find out whether any of the invalidated services that you were using (and want to continue using) have been added back to a different location in the peripheral’s database.

    Import Statement

    Objective-C

    @import CoreBluetooth;

    Swift

    import CoreBluetooth

    Availability

    Available in iOS 7.0 and later.