Вопрос

У меня странная проблема с отклонением моих достижений и лидеров. 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();
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top