<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: -",
    "macOS: 13.0.0 -",
    "tvOS: 16.0.0 -",
    "visionOS: -",
    "watchOS: 9.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppIntents",
  "identifier" : "/documentation/AppIntents/Resolver",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "App Intents"
    ],
    "preciseIdentifier" : "s:10AppIntents8ResolverP"
  },
  "title" : "Resolver"
}
-->

# Resolver

An interface to convert a value from one type to a different type.

```
protocol Resolver : Hashable, Sendable
```

## Topics

### Resolving the type

[`func resolve(from: Self.Input, context: IntentParameterContext<Self.Output>) async throws -> Self.Output?`](/documentation/AppIntents/Resolver/resolve(from:context:))

Converts the specified value into the expected data type.

[`associatedtype Input : _IntentValue`](/documentation/AppIntents/Resolver/Input)

[`associatedtype Output : _IntentValue`](/documentation/AppIntents/Resolver/Output)

### Managing the resolution process

[`protocol ResolverSpecification`](/documentation/AppIntents/ResolverSpecification)

An internal type that a resolver uses to convert data values.

[`struct EmptyResolverSpecification`](/documentation/AppIntents/EmptyResolverSpecification)

[`struct StringSearchCriteriaFromStringResolverSpecificification`](/documentation/AppIntents/StringSearchCriteriaFromStringResolverSpecificification)

An internal type that a resolver uses to convert data values.

[`enum ResolverSpecificationBuilder`](/documentation/AppIntents/ResolverSpecificationBuilder)

A result builder that declaratively specifies a set of resolvers.

### Type Aliases

[`typealias Context`](/documentation/AppIntents/Resolver/Context)

## Relationships

### Inherited By

[`RangeCheckingResolver`](/documentation/AppIntents/RangeCheckingResolver)

### Conforming Types

[`StringFromIntResolver`](/documentation/AppIntents/StringFromIntResolver)

[`URLFromStringResolver`](/documentation/AppIntents/URLFromStringResolver)

[`StringFromDoubleResolver`](/documentation/AppIntents/StringFromDoubleResolver)

[`IntFromDoubleResolver`](/documentation/AppIntents/IntFromDoubleResolver)

[`DoubleFromIntResolver`](/documentation/AppIntents/DoubleFromIntResolver)

[`DoubleResolver`](/documentation/AppIntents/DoubleResolver)

[`AttributedStringFromStringResolver`](/documentation/AppIntents/AttributedStringFromStringResolver)

[`StringSearchCriteriaFromStringResolverSpecificification`](/documentation/AppIntents/StringSearchCriteriaFromStringResolverSpecificification)

[`IntResolver`](/documentation/AppIntents/IntResolver)

[`BoolFromStringResolver`](/documentation/AppIntents/BoolFromStringResolver)

[`DoubleFromStringResolver`](/documentation/AppIntents/DoubleFromStringResolver)

[`IntFromStringResolver`](/documentation/AppIntents/IntFromStringResolver)

### Inherits From

[`Equatable`](/documentation/Swift/Equatable)

[`Sendable`](/documentation/Swift/Sendable)

[`Hashable`](/documentation/Swift/Hashable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

---

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)