---
title: "selectChallengeablePlayers(_:withCompletionHandler:)"
framework: gamekit
role: symbol
role_heading: Instance Method
path: "gamekit/gkachievement/selectchallengeableplayers(_:withcompletionhandler:)"
---

# selectChallengeablePlayers(_:withCompletionHandler:)

Finds the subset of players who can earn an achievement.

## Declaration

```swift
func selectChallengeablePlayers(_ players: [GKPlayer], withCompletionHandler completionHandler: (@Sendable ([GKPlayer]?, (any Error)?) -> Void)? = nil)
```

```swift
func selectChallengeablePlayers(_ players: [GKPlayer]) async throws -> [GKPlayer]
```

## Parameters

- `players`: A list of players that GameKit uses to find players who are eligible to earn the achievement.
- `completionHandler`: A block that GameKit calls when this method completes. The block receives the following parameters:

## See Also

### Issuing Achievement Challenges

- [challengeComposeController(withMessage:players:completion:)](gamekit/gkachievement/challengecomposecontroller(withmessage:players:completion:).md)
- [GKChallengeComposeHandler](gamekit/gkchallengecomposehandler.md)
- [challengeComposeController(withMessage:players:completionHandler:)](gamekit/gkachievement/challengecomposecontroller(withmessage:players:completionhandler:).md)
- [challengeComposeController(withPlayers:message:completionHandler:)](gamekit/gkachievement/challengecomposecontroller(withplayers:message:completionhandler:).md)
