<!--
{
  "availability" : [
    "iOS: 12.0.0 -",
    "iPadOS: 12.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 11.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 5.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SiriKit",
  "identifier" : "/documentation/Intents/INObject",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Intents"
    ],
    "preciseIdentifier" : "c:objc(cs)INObject"
  },
  "title" : "INObject"
}
-->

# INObject

A representation of a custom intent parameter or response property.

```
class INObject
```

## Overview

Use [`INObject`](/documentation/Intents/INObject) to create custom parameters and response properties for intent data that doesn’t fit into one of the System Types, such as Boolean, Duration, or Location. Define custom types and associate them with your custom intents and responses in the Intent Definition file.

Xcode uses the type defined in the Intent Definition file to generate a subclass of `INObject`. Create an instance of this subclass to structure data in intents and intent responses.

> Tip:
> If your app supports intents on iOS 12, use the Custom parameter type in your Intent Definition file and create instances of ``doc://com.apple.sirikit/documentation/Intents/INObject`` (not a subclass) for custom parameters of those intents.

## Topics

### Creating a Custom Object

[`init(identifier:display:subtitle:image:)`](/documentation/Intents/INObject/init(identifier:display:subtitle:image:))

Creates a custom intent object with full display information.

[`init(identifier:display:)`](/documentation/Intents/INObject/init(identifier:display:))

Creates a custom intent object with the specified identifier and display string.

[`init(identifier:display:pronunciationHint:subtitle:image:)`](/documentation/Intents/INObject/init(identifier:display:pronunciationHint:subtitle:image:))

Creates a custom intent object with the specified attributes.

[`init(identifier:display:pronunciationHint:)`](/documentation/Intents/INObject/init(identifier:display:pronunciationHint:))

Creates a custom intent object with the specified attributes.

### Displaying the Object

[`displayString`](/documentation/Intents/INObject/displayString)

A name or description for the custom intent object.

[`subtitleString`](/documentation/Intents/INObject/subtitleString)

Additional details about the custom intent object.

[`displayImage`](/documentation/Intents/INObject/displayImage)

An image to display alongside the custom intent object’s text.

### Describing the Object for the System

[`identifier`](/documentation/Intents/INObject/identifier)

A string that identifies the custom intent object within your app.

[`pronunciationHint`](/documentation/Intents/INObject/pronunciationHint)

A hint that describes how to pronounce the custom intent object.

[`alternativeSpeakableMatches`](/documentation/Intents/INObject/alternativeSpeakableMatches)

An array of alternative speakable strings that identify the object.



---

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)