GKChallenge
A GKChallenge
объект представляет проблему, выпущенную проигрывателем к другому проигрывателю.
Проигрыватели используют Игровое приложение Центра, чтобы выпустить и просмотреть проблемы. Однако Ваша игра может также настроить свои способы поведения проблемы многими способами:
Можно загрузить список проблем, выпущенных местному игроку путем вызова
loadReceivedChallengesWithCompletionHandler:
метод класса. Например, Вы могли бы сделать это для отображения проблем в пользовательском интерфейсе игры.Ваше приложение может выпустить проблемы с помощью a
GKScore
илиGKAchievement
объект. Когда местный игрок инициирует действие в Вашем пользовательском интерфейсе, Ваша игра должна только выпустить проблемы.Когда новые события проблемы получены, Ваша игра может быть уведомлена. Посмотрите
GKChallengeEventHandlerDelegate
.
Разделение на подклассы примечаний
Вы никогда не разделяете на подклассы GKChallenge
классифицируйте непосредственно. Однако подклассы GKChallenge
представляйте определенные виды проблем. Существуют два типа проблемы:
A
GKScoreChallenge
проблема разбить счет местный игрок, заработанный в списке лидеров.A
GKAchievementChallenge
проблема завершить достижение, что уже завершился местный игрок.
Наследование
-
NSObject
-
GKChallenge
-
GKAchievementChallenge
-
GKScoreChallenge
-
NSObject
-
GKChallenge
-
GKAchievementChallenge
-
GKScoreChallenge
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSObjectProtocol
-
NSSecureCoding
-
Печатаемый
-
NSCoding
-
NSObject
-
NSSecureCoding
Оператор импорта
Swift
import GameKit
Objective C
@import GameKit;
Доступность
Доступный в OS X v10.8 и позже.
-
Загружает список выдающихся проблем.
Объявление
Swift
class func loadReceivedChallengesWithCompletionHandler(_
completionHandler
: (([AnyObject]!, NSError!) -> Void)!)Параметры
completionHandler
Блок, который вызовут, когда завершается загрузка.
Блок получает следующие параметры:
challenges
Массив
GKChallenge
объекты, который представляет все проблемы, сделанные местному игроку. Если ошибка произошла, этот параметр может быть не -nil
, когда массив содержит любую информацию о проблеме, Гэйм Кит смог выбрать.error
Если ошибка произошла, этот объект описывает ошибку. Если работа завершилась успешно, это значение
nil
.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в OS X v10.8 и позже.
-
Проигрыватель, кто выпустил проблему. (только для чтения)
Объявление
Swift
var issuingPlayerID: String! { get }
Objective C
@property(nonatomic, readonly, copy) NSString *issuingPlayerID
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в OS X v10.8 и позже.
Осуждаемый в OS X v10.10.
-
Проигрыватель, кто получил проблему. (только для чтения)
Объявление
Swift
var receivingPlayerID: String! { get }
Objective C
@property(nonatomic, readonly, copy) NSString *receivingPlayerID
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в OS X v10.8 и позже.
Осуждаемый в OS X v10.10.
-
issuingPlayer issuingPlayer
СвойствоGKPlayer
объект связался с проигрывателем, кто выпустил проблему. (только для чтения)Объявление
Swift
@NSCopying var issuingPlayer: GKPlayer! { get }
Objective C
@property(nonatomic, readonly, copy) GKPlayer *issuingPlayer
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в OS X v10.10 и позже.
-
receivingPlayer receivingPlayer
СвойствоGKPlayer
объект связался с проигрывателем, кто получил проблему. (только для чтения)Объявление
Swift
@NSCopying var receivingPlayer: GKPlayer! { get }
Objective C
@property(nonatomic, readonly, copy) GKPlayer *receivingPlayer
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в OS X v10.10 и позже.
-
Текущее состояние проблемы. (только для чтения)
Объявление
Swift
var state: GKChallengeState { get }
Objective C
@property(nonatomic, readonly, assign) GKChallengeState state
Обсуждение
Посмотрите состояние проблемы для возможных значений.
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в OS X v10.8 и позже.
-
completionDate completionDate
СвойствоДата проблема была завершена. (только для чтения)
Объявление
Swift
var completionDate: NSDate! { get }
Objective C
@property(nonatomic, readonly, retain) NSDate *completionDate
Обсуждение
Если проблема не завершена, это значение
nil
.Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в OS X v10.8 и позже.
-
Уменьшает проблему.
Объявление
Swift
func decline()
Objective C
- (void)decline
Обсуждение
Если Ваша игра реализует настроенный пользовательский интерфейс для отображения проблем, она должна включать средства управления, позволяющие проигрывателю уменьшать проблему. Если проигрыватель использует Ваш пользовательский интерфейс для снижения проблемы, вызовите этот метод.
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в OS X v10.8 и позже.
Типы данных
-
Блок Completion, определяющий, была ли проблема выпущена и если так, в кого это отправляется.
Объявление
Swift
typealias GKChallengeComposeCompletionBlock = (NSViewController!, Bool, [AnyObject]!) -> Void
Objective C
typedef void (^GKChallengeComposeCompletionBlock)(UIViewController *composeController, BOOL didIssueChallenge, NSArray *sentPlayerIDs);
Обсуждение
Блочные параметры определяются следующим образом:
composeController
Контроллер представления для проблемы.
didIssueChallenge
Логическая переменная, определяющая, была ли отослана проблема.
sentPlayerIDs
Массив
NSString
объекты, содержащие идентификаторы проигрывателя, в которые была отправлена проблема.Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в OS X v10.10 и позже.
-
Возможные состояния, в которых может жить проблема.
Объявление
Swift
enum GKChallengeState : Int { case Invalid case Pending case Completed case Declined }
Objective C
typedef enum GKChallengeState { GKChallengeStateInvalid = 0, GKChallengeStatePending = 1, GKChallengeStateCompleted = 2, GKChallengeStateDeclined = 3, };
Константы
-
Invalid
GKChallengeStateInvalid
Ошибка произошла. Состояние этой проблемы не допустимо.
Доступный в OS X v10.8 и позже.
-
Pending
GKChallengeStatePending
Проблема была выпущена, но еще не завершена, ни уменьшена.
Доступный в OS X v10.8 и позже.
-
Completed
GKChallengeStateCompleted
Проигрыватель получения успешно завершил проблему.
Доступный в OS X v10.8 и позже.
-
Declined
GKChallengeStateDeclined
Проигрыватель получения уменьшил проблему.
Доступный в OS X v10.8 и позже.
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в OS X v10.8 и позже.
-