<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: 14.0.0 -",
    "tvOS: 14.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIApplicationDelegate/application(_:handlerFor:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(pl)UIApplicationDelegate(im)application:handlerForIntent:"
  },
  "title" : "application(_:handlerFor:)"
}
-->

# application(_:handlerFor:)

Asks the delegate for an intent handler capable of handling the specified intent.

```
optional func application(_ application: UIApplication, handlerFor intent: INIntent) -> Any?
```

## Parameters

`application`

The shared app object.

`intent`

The intent object that represents the request coming from the system.

## Return Value

An instance of a type capable of handling the specified intent; otherwise, `nil` if your app doesn’t handle the intent. Return an instance of a type that conforms to the handling intents protocol for the same type as the provided intent.

## Discussion

> Important:
> The system only invokes this method in apps that support multiple scenes. For more information, see <doc://com.apple.uikit/documentation/UIKit/specifying-the-scenes-your-app-supports>.

Siri invokes this method on the main queue when it wants to process one of your app’s supported intents. To indicate the intents that your app supports, populate the <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/INIntentsSupported> array in your app target’s `Info.plist` file.

In your delegate’s implementation of this method, check the `intent` parameter’s type and return a custom object that adopts the corresponding handling protocol. For example, if `intent` is an instance of <doc://com.apple.documentation/documentation/Intents/INPlayMediaIntent>, return an object that adopts <doc://com.apple.documentation/documentation/Intents/INPlayMediaIntentHandling>. Only use the provided intent to determine the handler to return; don’t use it to initialize the handler and don’t store a reference to it. SiriKit updates the intent throughout the request to incorporate information the requester provides. For more information, see <doc://com.apple.documentation/documentation/SiriKit/dispatching-intents-to-handlers>.

For information about handling intents, see <doc://com.apple.documentation/documentation/SiriKit/resolving-and-handling-intents>.

---

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)