<!--
{
  "availability" : [
    "iOS: 7.0.0 - 26.0.0",
    "iPadOS: 7.0.0 - 26.0.0",
    "macCatalyst: 13.1.0 - 26.0.0",
    "macOS: 10.10.0 - 26.0.0",
    "tvOS: 9.0.0 - 26.0.0",
    "visionOS: 1.0.0 - 26.0.0",
    "watchOS: 3.0.0 - 26.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "GameKit",
  "identifier" : "/documentation/GameKit/GKChallengeListener",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "GameKit"
    ],
    "preciseIdentifier" : "c:objc(pl)GKChallengeListener"
  },
  "title" : "GKChallengeListener"
}
-->

# GKChallengeListener

An object that responds to challenge events.

```
protocol GKChallengeListener : NSObjectProtocol
```

## Overview

Your game can ignore a challenge, start up in a specific state so the local player can respond to a challenge, or notify the challenger when the local player completes a challenge.

Don’t implement [`GKChallengeListener`](/documentation/GameKit/GKChallengeListener) directly; instead use [`GKLocalPlayerListener`](/documentation/GameKit/GKLocalPlayerListener). The [`GKLocalPlayerListener`](/documentation/GameKit/GKLocalPlayerListener) protocol inherits methods from [`GKChallengeListener`](/documentation/GameKit/GKChallengeListener), [`GKInviteEventListener`](/documentation/GameKit/GKInviteEventListener), [`GKSavedGameListener`](/documentation/GameKit/GKSavedGameListener), and [`GKTurnBasedEventListener`](/documentation/GameKit/GKTurnBasedEventListener) in order to handle multiple events.

## Topics

### Responding to a Challenge

[`-  player:didReceiveChallenge:`](/documentation/GameKit/GKChallengeListener/player(_:didReceive:))

Handles when the local player issues a challenge but the other player doesn’t want to respond immediately.

[`-  player:wantsToPlayChallenge:`](/documentation/GameKit/GKChallengeListener/player(_:wantsToPlay:))

Handles when the local player issues a challenge and the other player accepts.

### Completing a Challenge

[`-  player:didCompleteChallenge:issuedByFriend:`](/documentation/GameKit/GKChallengeListener/player(_:didComplete:issuedByFriend:))

Handles when the local player completes a challenge that a friend issues.

[`-  player:issuedChallengeWasCompleted:byFriend:`](/documentation/GameKit/GKChallengeListener/player(_:issuedChallengeWasCompleted:byFriend:))

Handles when a friend completes a challenge that the local player issues.

## Relationships

### Inherited By

[`GKLocalPlayerListener`](/documentation/GameKit/GKLocalPlayerListener)

### Inherits From

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

---

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)