---
title: PermissionChoice
framework: permissionkit
role: symbol
role_heading: Structure
path: permissionkit/permissionchoice
---

# PermissionChoice

A class that uniquely identifies a specific, statically defined permission choice.

## Declaration

```swift
struct PermissionChoice
```

## Mentioned in

Creating a communication experience

## Overview

Overview Each PermissionQuestion contains a set of possible answer choices, each corresponding to a globally unique identifier that you can interpret. The code below is an example of how to use PermissionChoice to set permission choices for a person using your app.    let approveOneHour = PermissionChoice(id: AnswerIdentifier.approveOneHour,    title: "Approve for one hour", answer: .approval)    let approveAllDay = PermissionChoice(id: AnswerIdentifier.approveAllDay,     title: "Approve all day", answer: .approval)    let approveIndefinitely = PermissionChoice(id: AnswerIdentifier.approveIndefinitely,      title: "Approve indefinitely", answer: .approval)    let decline = PermissionChoice(id: AnswerIdentifier.decline,                           title: "Decline", answer: .denial) If your application only requires a yes or no response, you can use the two predefined PermissionChoice options: approve and decline.

## Topics

### Accessing answers

- [answer](permissionkit/permissionchoice/answer-swift.property.md)
- [PermissionChoice.Answer](permissionkit/permissionchoice/answer-swift.enum.md)
- [approve](permissionkit/permissionchoice/approve.md)
- [decline](permissionkit/permissionchoice/decline.md)

### Identifying permissions

- [id](permissionkit/permissionchoice/id.md)
- [title](permissionkit/permissionchoice/title.md)

### Computing hashes

- [hash(into:)](permissionkit/permissionchoice/hash(into:).md)
- [==(_:_:)](permissionkit/permissionchoice/==(_:_:).md)

## Relationships

### Conforms To

- [Decodable](swift/decodable.md)
- [Encodable](swift/encodable.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [Identifiable](swift/identifiable.md)

## See Also

### Response management

- [responses(for:)](permissionkit/askcenter/responses(for:).md)
- [PermissionResponse](permissionkit/permissionresponse.md)
- [CommunicationHandle](permissionkit/communicationhandle.md)
- [CommunicationLimits](permissionkit/communicationlimits.md)
