Monotouch Достижения и списки лидеров - PullRequest
2 голосов
/ 14 июня 2011

У меня странная проблема с отклонением моих достижений и списков лидеров списка лидеров. Контроллеры просмотра отображаются правильно и могут быть отклонены с помощью кнопки «Готово», но только если вы нажмете ее в течение примерно 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");

        }


    }

1 Ответ

0 голосов
/ 14 июня 2011

Ваш gkview собирает мусор. Вместо этого измените его на переменную экземпляра в своем классе, чтобы сохранить ссылку на него.

Итак, ваш код должен выглядеть примерно так:

GKAchievementViewController gkview;

public void checkAchievements(UIViewController view)
{
    gkview = new GKAchievementViewController();
    view.PresentModalViewController(gkview,true);
    gkview.Delegate = new gkviewdelegate();
}
...