GKTurnBasedParticipant
имеет свойство: player
, которое имеет класс GKPlayer
.Объявление записывается в виде:
var player: GKPlayer { get }
Тем не менее, в документации API говорится:
Значение этого свойства может быть равно нулю, если этот слот в совпадении еще не был заполненфактический игрок.
Так что, если это может быть nil
, почему не объявление:
var player: GKPlayer?
Что я не понимаю здесь?Это что-то с геттером?Это действительно важно, потому что игрок должен иметь значение nil
для автоматических игр, в которые еще должен присоединиться второй игрок.
Когда я делаю условное развертывание (после перехода на Swift 4.2)
if let onlineGKPlayer = participant.player {
теперь это ошибка компилятора:
Инициализатор для условного связывания должен иметь необязательный тип, а не 'GKPlayer'
https://developer.apple.com/documentation/gamekit/gkturnbasedparticipant/1521037-player