Действительно ли a
, даже в случае ошибки аутентификации?Является ли localPlayer еще аутентифицированным, даже если аутентификация завершается ошибкой
GKLocalPlayer.localPlayer.authenticateHandler =
^(UIViewController *viewController, NSError *error)
{
if (error)
{
bool a = GKLocalPlayer.localPlayer.authenticated;
}
else
{
Это происходит, например, когда у меня есть аутентификацией игрок перемещает приложение в фоновом режиме, отключает WiFi, а затем переместить приложение снова на передний план. Я надеюсь, что GameCenter просто продолжит работу с кэшированной учетной записью?
Я нахожу руководство немного неоднозначным. От https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/GameKit_Guide/Users/Users.html#//apple_ref/doc/uid/TP40008304-CH8-SW11:.
«Как только ваша игра переходит на задний план, значение аутентифицированного собственности локального объекта игрока становится и остается недействительным, пока ваша игра не возвращается на первый план Вы не можете прочитать значение, если определить игрок по-прежнему проверяется до тех пор, пока Game Kit не повторит аутентификацию игрока и не вызовет обработчик проверки подлинности. Ваша игра должна действовать так, как если бы не был аутентифицированный игрок до тех пор, пока не будет вызван обработчик завершения. После вызова обработчика значение, сохраненное в аутентифицированном свойстве, еще раз."
Действительно ли значение действует, даже если аутентификация не удалась?
В мобильной среде вы не можете гарантировать связь, поэтому, возможно, яблоки подход путь? Аутентифицированный атрибут указывает состояние аутентификации и делает это, используя кешированную информацию, если это необходимо. Это не гарантирует, что следующая операция сети будет успешной. Как это могло быть? –
Справедливая точка. Моя проблема заключается в том, что она уже знает, что она не может подключиться, например, в режиме «Самолет», но все еще сообщает об аутентификации. Или сообщать о кешированных результатах * без * говорящего мне. Я предложил в своей ошибке сделать это 3-значным значением: аутентифицированным, неавторизованным и кэшированным. Тогда я полностью пойму состояние, в котором я нахожусь, и могу выбрать, как действовать дальше. Это, наверное, спорный вопрос. Я серьезно сомневаюсь, что они что-то изменят. – Thunk