2011-06-13 57 views
2

我有一个奇怪的问题关闭我的成就和排行榜视图控制器。 视图控制器正确显示,可以使用完成按钮,但只有当你按下它显示约15秒内,如果你按任何时候之后,我的应用程序只是崩溃按下它可以解雇。在调试器中,我收到一个“无法识别的选择器发送到实例”的错误。Monotouch成就和排行榜视图控制器

我猜测也许viewcontrollers正在垃圾收集或什么?我真的很感激任何建议。

继承人我的代码

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

     } 


    } 

回答

0

你gkview越来越垃圾收集。将其更改为实例变量,而不是在您的类中以保存对其的引用。

所以你的代码应该看起来有点像;

GKAchievementViewController gkview; 

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