Documentation Archive Developer
Search

GameKit Changes for Objective-C

GameKit

GKAchievement.h

Declaration
From
+ (void)loadAchievementsWithCompletionHandler:(void (^)(NSArray *achievements, NSError *error))completionHandler
To
+ (void)loadAchievementsWithCompletionHandler:(void (^ _Nullable)(NSArray<GKAchievement *> * _Nullable achievements, NSError * _Nullable error))completionHandler

Declaration
From
+ (void)reportAchievements:(NSArray *)achievements withCompletionHandler:(void (^)(NSError *error))completionHandler
To
+ (void)reportAchievements:(NSArray<GKAchievement *> * _Nonnull)achievements withCompletionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler

GKAchievementDescription.h

Declaration
From
+ (void)loadAchievementDescriptionsWithCompletionHandler:(void (^)(NSArray *descriptions, NSError *error))completionHandler
To
+ (void)loadAchievementDescriptionsWithCompletionHandler:(void (^ _Nullable)(NSArray<GKAchievementDescription *> * _Nullable descriptions, NSError * _Nullable error))completionHandler

GKChallenge.h

Declaration
From
- (UIViewController *)challengeComposeControllerWithMessage:(NSString *)message players:(NSArray *)players completionHandler:(GKChallengeComposeCompletionBlock)completionHandler
To
- (UIViewController * _Nonnull)challengeComposeControllerWithMessage:(NSString * _Nullable)message players:(NSArray<GKPlayer *> * _Nonnull)players completionHandler:(GKChallengeComposeCompletionBlock _Nullable)completionHandler

Declaration
From
- (UIViewController *)challengeComposeControllerWithPlayers:(NSArray *)playerIDs message:(NSString *)message completionHandler:(GKChallengeComposeCompletionBlock)completionHandler
To
- (UIViewController * _Nullable)challengeComposeControllerWithPlayers:(NSArray<NSString *> * _Nullable)playerIDs message:(NSString * _Nullable)message completionHandler:(GKChallengeComposeCompletionBlock _Nullable)completionHandler

Declaration
From
- (void)issueChallengeToPlayers:(NSArray *)playerIDs message:(NSString *)message
To
- (void)issueChallengeToPlayers:(NSArray<NSString *> * _Nullable)playerIDs message:(NSString * _Nullable)message

Declaration
From
+ (void)reportAchievements:(NSArray *)achievements withEligibleChallenges:(NSArray *)challenges withCompletionHandler:(void (^)(NSError *error))completionHandler
To
+ (void)reportAchievements:(NSArray<GKAchievement *> * _Nonnull)achievements withEligibleChallenges:(NSArray<GKChallenge *> * _Nonnull)challenges withCompletionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler

Declaration
From
- (void)selectChallengeablePlayerIDs:(NSArray *)playerIDs withCompletionHandler:(void (^)(NSArray *challengeablePlayerIDs, NSError *error))completionHandler
To
- (void)selectChallengeablePlayerIDs:(NSArray<NSString *> * _Nullable)playerIDs withCompletionHandler:(void (^ _Nullable)(NSArray<NSString *> * _Nullable challengeablePlayerIDs, NSError * _Nullable error))completionHandler

Declaration
From
- (void)selectChallengeablePlayers:(NSArray *)players withCompletionHandler:(void (^)(NSArray *challengeablePlayers, NSError *error))completionHandler
To
- (void)selectChallengeablePlayers:(NSArray<GKPlayer *> * _Nonnull)players withCompletionHandler:(void (^ _Nullable)(NSArray<GKPlayer *> * _Nullable challengeablePlayers, NSError * _Nullable error))completionHandler

Declaration
From
+ (void)loadReceivedChallengesWithCompletionHandler:(void (^)(NSArray *challenges, NSError *error))completionHandler
To
+ (void)loadReceivedChallengesWithCompletionHandler:(void (^ _Nullable)(NSArray<GKChallenge *> * _Nullable challenges, NSError * _Nullable error))completionHandler

Declaration
From
- (UIViewController *)challengeComposeControllerWithMessage:(NSString *)message players:(NSArray *)players completionHandler:(GKChallengeComposeCompletionBlock)completionHandler
To
- (UIViewController * _Nonnull)challengeComposeControllerWithMessage:(NSString * _Nullable)message players:(NSArray<GKPlayer *> * _Nullable)players completionHandler:(GKChallengeComposeCompletionBlock _Nullable)completionHandler

Declaration
From
- (UIViewController *)challengeComposeControllerWithPlayers:(NSArray *)playerIDs message:(NSString *)message completionHandler:(GKChallengeComposeCompletionBlock)completionHandler
To
- (UIViewController * _Nullable)challengeComposeControllerWithPlayers:(NSArray<NSString *> * _Nullable)playerIDs message:(NSString * _Nullable)message completionHandler:(GKChallengeComposeCompletionBlock _Nullable)completionHandler

Declaration
From
- (void)issueChallengeToPlayers:(NSArray *)playerIDs message:(NSString *)message
To
- (void)issueChallengeToPlayers:(NSArray<NSString *> * _Nullable)playerIDs message:(NSString * _Nullable)message

Declaration
From
+ (void)reportScores:(NSArray *)scores withEligibleChallenges:(NSArray *)challenges withCompletionHandler:(void (^)(NSError *error))completionHandler
To
+ (void)reportScores:(NSArray<GKScore *> * _Nonnull)scores withEligibleChallenges:(NSArray<GKChallenge *> * _Nonnull)challenges withCompletionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler

GKFriendRequestComposeViewController.h

Declaration
From
- (void)addRecipientPlayers:(NSArray *)players
To
- (void)addRecipientPlayers:(NSArray<GKPlayer *> * _Nonnull)players

Declaration
From
- (void)addRecipientsWithEmailAddresses:(NSArray *)emailAddresses
To
- (void)addRecipientsWithEmailAddresses:(NSArray<NSString *> * _Nonnull)emailAddresses

Declaration
From
- (void)addRecipientsWithPlayerIDs:(NSArray *)playerIDs
To
- (void)addRecipientsWithPlayerIDs:(NSArray<NSString *> * _Nonnull)playerIDs

GKGameCenterViewController.h

Deprecation
FromiOS 7.0
To--

GKLeaderboard.h

Declaration
From
- (instancetype)initWithPlayerIDs:(NSArray *)playerIDs
To
- (instancetype _Nullable)initWithPlayerIDs:(NSArray<NSString *> * _Nullable)playerIDs

Declaration
From
- (instancetype)initWithPlayers:(NSArray *)players
To
- (instancetype _Nonnull)initWithPlayers:(NSArray<GKPlayer *> * _Nonnull)players

Declaration
From
+ (void)loadCategoriesWithCompletionHandler:(void (^)(NSArray *categories, NSArray *titles, NSError *error))completionHandler
To
+ (void)loadCategoriesWithCompletionHandler:(void (^ _Nullable)(NSArray<NSString *> * _Nullable categories, NSArray<NSString *> * _Nullable titles, NSError * _Nullable error))completionHandler

Declaration
From
+ (void)loadLeaderboardsWithCompletionHandler:(void (^)(NSArray *leaderboards, NSError *error))completionHandler
To
+ (void)loadLeaderboardsWithCompletionHandler:(void (^ _Nullable)(NSArray<GKLeaderboard *> * _Nullable leaderboards, NSError * _Nullable error))completionHandler

Declaration
From
- (void)loadScoresWithCompletionHandler:(void (^)(NSArray *scores, NSError *error))completionHandler
To
- (void)loadScoresWithCompletionHandler:(void (^ _Nullable)(NSArray<GKScore *> * _Nullable scores, NSError * _Nullable error))completionHandler

Declaration
From
@property(readonly, retain, nonatomic) NSArray *scores
To
@property(readonly, retain, nonatomic, nullable) NSArray<GKScore *> *scores

GKLeaderboardSet.h

Declaration
From
+ (void)loadLeaderboardSetsWithCompletionHandler:(void (^)(NSArray *leaderboardSets, NSError *error))completionHandler
To
+ (void)loadLeaderboardSetsWithCompletionHandler:(void (^ _Nullable)(NSArray<GKLeaderboardSet *> * _Nullable leaderboardSets, NSError * _Nullable error))completionHandler

Declaration
From
- (void)loadLeaderboardsWithCompletionHandler:(void (^)(NSArray *leaderboards, NSError *error))completionHandler
To
- (void)loadLeaderboardsWithCompletionHandler:(void (^ _Nullable)(NSArray<GKLeaderboard *> * _Nullable leaderboards, NSError * _Nullable error))completionHandler

GKLocalPlayer.h

Declaration
From
@property(nonatomic, readonly, retain) NSArray *friends
To
@property(nonatomic, readonly, retain, nullable) NSArray<NSString *> *friends

Declaration
From
- (void)loadFriendPlayersWithCompletionHandler:(void (^)(NSArray *friendPlayers, NSError *error))completionHandler
To
- (void)loadFriendPlayersWithCompletionHandler:(void (^ _Nullable)(NSArray<GKPlayer *> * _Nullable friendPlayers, NSError * _Nullable error))completionHandler

Declaration
From
- (void)loadFriendsWithCompletionHandler:(void (^)(NSArray *friendIDs, NSError *error))completionHandler
To
- (void)loadFriendsWithCompletionHandler:(void (^ _Nullable)(NSArray<NSString *> * _Nullable friendIDs, NSError * _Nullable error))completionHandler

GKMatch.h

Declaration
From
@property(nonatomic, readonly) NSArray *playerIDs
To
@property(nonatomic, readonly, nonnull) NSArray<NSString *> *playerIDs

Declaration
From
@property(nonatomic, readonly) NSArray *players
To
@property(nonatomic, readonly, nonnull) NSArray<GKPlayer *> *players

Declaration
From
- (BOOL)sendData:(NSData *)data toPlayers:(NSArray *)players dataMode:(GKMatchSendDataMode)mode error:(NSError **)error
To
- (BOOL)sendData:(NSData * _Nonnull)data toPlayers:(NSArray<GKPlayer *> * _Nonnull)players dataMode:(GKMatchSendDataMode)mode error:(NSError * _Nullable * _Nullable)error

Declaration
From
- (BOOL)sendData:(NSData *)data toPlayers:(NSArray *)playerIDs withDataMode:(GKMatchSendDataMode)mode error:(NSError **)error
To
- (BOOL)sendData:(NSData * _Nonnull)data toPlayers:(NSArray<NSString *> * _Nonnull)playerIDs withDataMode:(GKMatchSendDataMode)mode error:(NSError * _Nullable * _Nullable)error

GKMatchmaker.h

Declaration
From
- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray *)playerIDsToInvite
To
- (void)player:(GKPlayer * _Nonnull)player didRequestMatchWithPlayers:(NSArray<NSString *> * _Nonnull)playerIDsToInvite

Declaration
From
- (void)player:(GKPlayer *)player didRequestMatchWithRecipients:(NSArray *)recipientPlayers
To
- (void)player:(GKPlayer * _Nonnull)player didRequestMatchWithRecipients:(NSArray<GKPlayer *> * _Nonnull)recipientPlayers

Declaration
From
- (void)findPlayersForHostedMatchRequest:(GKMatchRequest *)request withCompletionHandler:(void (^)(NSArray *playerIDs, NSError *error))completionHandler
To
- (void)findPlayersForHostedMatchRequest:(GKMatchRequest * _Nonnull)request withCompletionHandler:(void (^ _Nullable)(NSArray<NSString *> * _Nullable playerIDs, NSError * _Nullable error))completionHandler

Declaration
From
- (void)findPlayersForHostedRequest:(GKMatchRequest *)request withCompletionHandler:(void (^)(NSArray *players, NSError *error))completionHandler
To
- (void)findPlayersForHostedRequest:(GKMatchRequest * _Nonnull)request withCompletionHandler:(void (^ _Nullable)(NSArray<GKPlayer *> * _Nullable players, NSError * _Nullable error))completionHandler

Declaration
From
@property(retain) NSArray *playersToInvite
To
@property(retain, nullable) NSArray<NSString *> *playersToInvite

Declaration
From
@property(retain) NSArray *recipients
To
@property(retain, nullable) NSArray<GKPlayer *> *recipients

GKMatchmakerViewController.h

Declaration
From
- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindHostedPlayers:(NSArray *)players
To
- (void)matchmakerViewController:(GKMatchmakerViewController * _Nonnull)viewController didFindHostedPlayers:(NSArray<GKPlayer *> * _Nonnull)players

Declaration
From
- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindPlayers:(NSArray *)playerIDs
To
- (void)matchmakerViewController:(GKMatchmakerViewController * _Nonnull)viewController didFindPlayers:(NSArray<NSString *> * _Nonnull)playerIDs

GKPlayer.h

Declaration
From
+ (void)loadPlayersForIdentifiers:(NSArray *)identifiers withCompletionHandler:(void (^)(NSArray *players, NSError *error))completionHandler
To
+ (void)loadPlayersForIdentifiers:(NSArray<NSString *> * _Nonnull)identifiers withCompletionHandler:(void (^ _Nullable)(NSArray<GKPlayer *> * _Nullable players, NSError * _Nullable error))completionHandler

GKPublicConstants.h

Deprecation
FromiOS 7.0
To--

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
FromiOS 7.0
To--

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Modified GKSessionMode
Deprecation
FromiOS 7.0
To--

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
FromiOS 7.0
To--

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

GKSavedGame.h

Declaration
From
- (void)fetchSavedGamesWithCompletionHandler:(void (^)(NSArray *savedGames, NSError *error))handler
To
- (void)fetchSavedGamesWithCompletionHandler:(void (^ _Nullable)(NSArray<GKSavedGame *> * _Nullable savedGames, NSError * _Nullable error))handler

Declaration
From
- (void)resolveConflictingSavedGames:(NSArray *)conflictingSavedGames withData:(NSData *)data completionHandler:(void (^)(NSArray *savedGames, NSError *error))handler
To
- (void)resolveConflictingSavedGames:(NSArray<GKSavedGame *> * _Nonnull)conflictingSavedGames withData:(NSData * _Nonnull)data completionHandler:(void (^ _Nullable)(NSArray<GKSavedGame *> * _Nullable savedGames, NSError * _Nullable error))handler

GKSavedGameListener.h

Declaration
From
- (void)player:(GKPlayer *)player hasConflictingSavedGames:(NSArray *)savedGames
To
- (void)player:(GKPlayer * _Nonnull)player hasConflictingSavedGames:(NSArray<GKSavedGame *> * _Nonnull)savedGames

GKScore.h

Declaration
From
+ (void)reportScores:(NSArray *)scores withCompletionHandler:(void (^)(NSError *error))completionHandler
To
+ (void)reportScores:(NSArray<GKScore *> * _Nonnull)scores withCompletionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler

GKSessionError.h

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
FromiOS 7.0
To--

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

Deprecation
From--
ToiOS 7.0

GKTurnBasedMatch.h

Declaration
From
- (void)handleInviteFromGameCenter:(NSArray *)playersToInvite
To
- (void)handleInviteFromGameCenter:(NSArray<GKPlayer *> * _Nonnull)playersToInvite

Deprecation
FromiOS 6.0
ToiOS 7.0

Deprecation
FromiOS 6.0
ToiOS 7.0

Declaration
From
- (void)player:(GKPlayer *)player didRequestMatchWithOtherPlayers:(NSArray *)playersToInvite
To
- (void)player:(GKPlayer * _Nonnull)player didRequestMatchWithOtherPlayers:(NSArray<GKPlayer *> * _Nonnull)playersToInvite

Declaration
From
- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray *)playerIDsToInvite
To
- (void)player:(GKPlayer * _Nonnull)player didRequestMatchWithPlayers:(NSArray<NSString *> * _Nonnull)playerIDsToInvite

Declaration
From
- (void)player:(GKPlayer *)player receivedExchangeReplies:(NSArray *)replies forCompletedExchange:(GKTurnBasedExchange *)exchange forMatch:(GKTurnBasedMatch *)match
To
- (void)player:(GKPlayer * _Nonnull)player receivedExchangeReplies:(NSArray<GKTurnBasedExchangeReply *> * _Nonnull)replies forCompletedExchange:(GKTurnBasedExchange * _Nonnull)exchange forMatch:(GKTurnBasedMatch * _Nonnull)match

Declaration
From
- (void)cancelWithLocalizableMessageKey:(NSString *)key arguments:(NSArray *)arguments completionHandler:(void (^)(NSError *error))completionHandler
To
- (void)cancelWithLocalizableMessageKey:(NSString * _Nonnull)key arguments:(NSArray<NSString *> * _Nonnull)arguments completionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler

Declaration
From
@property(readonly, nonatomic) NSArray *recipients
To
@property(readonly, nonatomic, nullable) NSArray<GKTurnBasedParticipant *> *recipients

Declaration
From
@property(readonly, nonatomic) NSArray *replies
To
@property(readonly, nonatomic, nullable) NSArray<GKTurnBasedExchangeReply *> *replies

Declaration
From
- (void)replyWithLocalizableMessageKey:(NSString *)key arguments:(NSArray *)arguments data:(NSData *)data completionHandler:(void (^)(NSError *error))completionHandler
To
- (void)replyWithLocalizableMessageKey:(NSString * _Nonnull)key arguments:(NSArray<NSString *> * _Nonnull)arguments data:(NSData * _Nonnull)data completionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler

Declaration
From
@property(readonly, retain, nonatomic) NSArray *activeExchanges
To
@property(readonly, retain, nonatomic, nullable) NSArray<GKTurnBasedExchange *> *activeExchanges

Declaration
From
@property(readonly, retain, nonatomic) NSArray *completedExchanges
To
@property(readonly, retain, nonatomic, nullable) NSArray<GKTurnBasedExchange *> *completedExchanges

Declaration
From
- (void)endMatchInTurnWithMatchData:(NSData *)matchData scores:(NSArray *)scores achievements:(NSArray *)achievements completionHandler:(void (^)(NSError *error))completionHandler
To
- (void)endMatchInTurnWithMatchData:(NSData * _Nonnull)matchData scores:(NSArray<GKScore *> * _Nullable)scores achievements:(NSArray<GKAchievement *> * _Nullable)achievements completionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler

Declaration
From
- (void)endTurnWithNextParticipants:(NSArray *)nextParticipants turnTimeout:(NSTimeInterval)timeout matchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler
To
- (void)endTurnWithNextParticipants:(NSArray<GKTurnBasedParticipant *> * _Nonnull)nextParticipants turnTimeout:(NSTimeInterval)timeout matchData:(NSData * _Nonnull)matchData completionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler

Declaration
From
@property(readonly, retain, nonatomic) NSArray *exchanges
To
@property(readonly, retain, nonatomic, nullable) NSArray<GKTurnBasedExchange *> *exchanges

Declaration
From
+ (void)loadMatchesWithCompletionHandler:(void (^)(NSArray *matches, NSError *error))completionHandler
To
+ (void)loadMatchesWithCompletionHandler:(void (^ _Nullable)(NSArray<GKTurnBasedMatch *> * _Nullable matches, NSError * _Nullable error))completionHandler

Declaration
From
- (void)participantQuitInTurnWithOutcome:(GKTurnBasedMatchOutcome)matchOutcome nextParticipants:(NSArray *)nextParticipants turnTimeout:(NSTimeInterval)timeout matchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler
To
- (void)participantQuitInTurnWithOutcome:(GKTurnBasedMatchOutcome)matchOutcome nextParticipants:(NSArray<GKTurnBasedParticipant *> * _Nonnull)nextParticipants turnTimeout:(NSTimeInterval)timeout matchData:(NSData * _Nonnull)matchData completionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler

Declaration
From
@property(readonly, retain, nonatomic) NSArray *participants
To
@property(readonly, retain, nonatomic, nullable) NSArray<GKTurnBasedParticipant *> *participants

Declaration
From
- (void)saveMergedMatchData:(NSData *)matchData withResolvedExchanges:(NSArray *)exchanges completionHandler:(void (^)(NSError *error))completionHandler
To
- (void)saveMergedMatchData:(NSData * _Nonnull)matchData withResolvedExchanges:(NSArray<GKTurnBasedExchange *> * _Nonnull)exchanges completionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler

Declaration
From
- (void)sendExchangeToParticipants:(NSArray *)participants data:(NSData *)data localizableMessageKey:(NSString *)key arguments:(NSArray *)arguments timeout:(NSTimeInterval)timeout completionHandler:(void (^)(GKTurnBasedExchange *exchange, NSError *error))completionHandler
To
- (void)sendExchangeToParticipants:(NSArray<GKTurnBasedParticipant *> * _Nonnull)participants data:(NSData * _Nonnull)data localizableMessageKey:(NSString * _Nonnull)key arguments:(NSArray<NSString *> * _Nonnull)arguments timeout:(NSTimeInterval)timeout completionHandler:(void (^ _Nullable)(GKTurnBasedExchange * _Nonnull exchange, NSError * _Nonnull error))completionHandler

Declaration
From
- (void)sendReminderToParticipants:(NSArray *)participants localizableMessageKey:(NSString *)key arguments:(NSArray *)arguments completionHandler:(void (^)(NSError *error))completionHandler
To
- (void)sendReminderToParticipants:(NSArray<GKTurnBasedParticipant *> * _Nonnull)participants localizableMessageKey:(NSString * _Nonnull)key arguments:(NSArray<NSString *> * _Nonnull)arguments completionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler

Declaration
From
- (void)setLocalizableMessageWithKey:(NSString *)key arguments:(NSArray *)arguments
To
- (void)setLocalizableMessageWithKey:(NSString * _Nonnull)key arguments:(NSArray<NSString *> * _Nullable)arguments

GKTurnBasedMatchmakerViewController.h

GKVoiceChat.h

Declaration
From
@property(readonly, nonatomic) NSArray *playerIDs
To
@property(readonly, nonatomic, nonnull) NSArray<NSString *> *playerIDs

Declaration
From
@property(readonly, nonatomic) NSArray *players
To
@property(readonly, nonatomic, nonnull) NSArray<GKPlayer *> *players