Monotouch достижения и лидеры ViewControllers
-
27-10-2019 - |
Вопрос
У меня странная проблема с отклонением моих достижений и лидеров. ViewControllers отображаются правильно и могут быть отклонены, используя кнопку DED, но только если вы нажмете ее в течение примерно 15 секунд после отображения, если вы нажмете в любое время после того, как мое приложение просто сбои. В отладчике я получаю ошибку «непризнанного селектора, отправленного в экземпляр».
Я предполагал, что может быть собрано мусор, или что -то в этом роде? Я бы очень признателен за любые советы.
Вот мой код
public void checkAchievements(UIViewController view)
{
GKAchievementViewController gkview = new GKAchievementViewController();
view.PresentModalViewController(gkview,true);
gkview.Delegate = new gkviewdelegate();
}
public class gkviewdelegate : GKAchievementViewControllerDelegate
{
public override void DidFinish (GKAchievementViewController viewController)
{
viewController.DismissModalViewControllerAnimated(true);
Console.WriteLine("Dismiss Leaderboard");
}
}
Решение
Ваш Gkview собирает мусор. Вместо этого измените его на переменную экземпляра, чтобы сохранить ссылку на нее.
Так что ваш код должен выглядеть немного похожим;
GKAchievementViewController gkview;
public void checkAchievements(UIViewController view)
{
gkview = new GKAchievementViewController();
view.PresentModalViewController(gkview,true);
gkview.Delegate = new gkviewdelegate();
}
Не связан с StackOverflow