<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreSpotlight",
  "identifier" : "/documentation/CoreSpotlight/CSSearchableIndexDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Core Spotlight"
    ],
    "preciseIdentifier" : "c:objc(pl)CSSearchableIndexDelegate"
  },
  "title" : "CSSearchableIndexDelegate"
}
-->

# CSSearchableIndexDelegate

A protocol that defines methods a delegate object or app extension uses to handle communication from the on-device index.

```
protocol CSSearchableIndexDelegate : NSObjectProtocol
```

## Overview

The `CSSearchableIndexDelegate` protocol defines methods that a delegate object or an app extension can use to handle communication from the on-device index. Apps that are long-running or that perform batch updates to the index should implement the required methods of this protocol in either a delegate object or an app extension.

The index delegate methods are called when there is an issue with the index and more information is needed from an app. For example, the methods can be called when the entire index is lost or there was a failure to process data for some identifiers.

## Topics

### Updating the index

[`-  searchableIndex:reindexAllSearchableItemsWithAcknowledgementHandler:`](/documentation/CoreSpotlight/CSSearchableIndexDelegate/searchableIndex(_:reindexAllSearchableItemsWithAcknowledgementHandler:))

Tells the delegate to reindex all searchable data and clear all local state information.

[`-  searchableIndex:reindexSearchableItemsWithIdentifiers:acknowledgementHandler:`](/documentation/CoreSpotlight/CSSearchableIndexDelegate/searchableIndex(_:reindexSearchableItemsWithIdentifiers:acknowledgementHandler:))

Tells the delegate to reindex the searchable items associated with the specified identifiers.

[`-  searchableItemsDidUpdate:`](/documentation/CoreSpotlight/CSSearchableIndexDelegate/searchableItemsDidUpdate(_:))

Tells the delegate that the framework updated the specified items.

### Providing data for an item

[`-  searchableItemsForIdentifiers:searchableItemsHandler:`](/documentation/CoreSpotlight/CSSearchableIndexDelegate/searchableItems(forIdentifiers:searchableItemsHandler:))

Requests that the delegate provide searchable items for the provided identifiers.

[`-  searchableItemsForIdentifiers:protectionClass:searchableItemsHandler:`](/documentation/CoreSpotlight/CSSearchableIndexDelegate/searchableItems(forIdentifiers:protectionClass:searchableItemsHandler:))

[`-  dataForSearchableIndex:itemIdentifier:typeIdentifier:error:`](/documentation/CoreSpotlight/CSSearchableIndexDelegate/data(for:itemIdentifier:typeIdentifier:))

Returns the data for the requested item during a drag-and-drop operation.

[`-  fileURLForSearchableIndex:itemIdentifier:typeIdentifier:inPlace:error:`](/documentation/CoreSpotlight/CSSearchableIndexDelegate/fileURL(for:itemIdentifier:typeIdentifier:inPlace:))

Returns a file URL for the requested item during a drag-and-drop operation.

### Monitoring Spotlight status

[`-  searchableIndexDidThrottle:`](/documentation/CoreSpotlight/CSSearchableIndexDelegate/searchableIndexDidThrottle(_:))

Tells the delegate that indexing is being throttled.

[`-  searchableIndexDidFinishThrottle:`](/documentation/CoreSpotlight/CSSearchableIndexDelegate/searchableIndexDidFinishThrottle(_:))

Tells the delegate that the index throttling has finished.

## Relationships

### Inherits From

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Conforming Types

[`CSIndexExtensionRequestHandler`](/documentation/CoreSpotlight/CSIndexExtensionRequestHandler)

---

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)