Domanda

Sto avendo una strana questione nel licenziare i miei risultati e la classifica della classifica. I ViewController vengono visualizzati correttamente e possono essere licenziati utilizzando il pulsante fatto ma solo se lo si preme entro circa 15 secondi in cui viene visualizzato, se si preme fatti in qualsiasi momento dopo la mia app si blocca. Nel debugger ricevo un errore "selettore non riconosciuto inviato all'istanza".

Stavo indovinando forse i ViewController sono stati raccolti immondizia o qualcosa del genere? Apprezzerei davvero qualsiasi consiglio.

ecco il mio codice

        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");

        }


    }
È stato utile?

Soluzione

Il tuo GKView sta raccolndo la spazzatura. Cambialo in una variabile di istanza invece nella tua classe per mantenere un riferimento ad essa.

Quindi il tuo codice dovrebbe sembrare un po 'simile;

GKAchievementViewController gkview;

public void checkAchievements(UIViewController view)
{
    gkview = new GKAchievementViewController();
    view.PresentModalViewController(gkview,true);
    gkview.Delegate = new gkviewdelegate();
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top