2012-02-10 199 views
5

我已经在我的项目中实现了adwhirl .. 我以前在我的项目中实现过它..所以我只是将它合并到我之前的当前项目中..EXC_BAD_ACCESS in device..not in simulator。(Adwhirl)

- (UIViewController *)viewControllerForPresentingModalView { 
{ 
    return self; 
} 

我曾在我以前的projects..since用这个我window.rootvviewcontroller是自己唯一的.. 但在我目前的项目有很多屏幕上我显示ads..so我已经使用

- (UIViewController *)viewControllerForPresentingModalView { 
    { 
     return return [[(AppDelegate *)[[UIApplication sharedApplication] delegate] window] rootViewController] ;; 
    } 

主要问题是该程序崩溃..仍然是..一开始一切都没问题..iads测试广告加载..但它坠毁很少..我很快就明白这是因为Admob ..它崩溃很少,因为admob广告是没有加载大部分时间..

现在搜索这些崩溃..我遇到了一个问题,因为我已经在Xcode 4.2项目而不是我以前的项目Xcode 4.0在我的窗口和视图有强大的属性控制器。我删除它。

现在的问题是在模拟器它不会崩溃,但它在设备崩溃。

误差是后我有加入AD浏览作为一个子视图并且它具有- (UIViewController *)viewControllerForPresentingModalView去通过这个功能但之前adWhirlDidReceiveAd方法

的实际碰撞是[GADRequestPrivate spamSignals] EXC_BAD_ACCESS。

任何帮助。 谢谢

+0

为什么问题用_android_标记标记? – beryllium 2012-02-20 10:15:18

+2

导致它在Admob崩溃,我相信Android用户将拥有比iOS开发人员更多关于Admob的知识.. – Shubhank 2012-02-20 10:31:11

回答

0

我建议你分析你的项目,寻找内存泄漏和僵尸。看起来好像你正在向一个释放对象发送消息,导致无效的内存访问。僵尸检测无法在设备上运行,但可以在模拟器上运行。看看Xcode Instruments - Enable NSZombie Detection? Where is it?

希望它有帮助。

+0

这就是问题..我肯定会使用僵尸..但它不会在设备上运行,并且崩溃不会在模拟器中......!..该死的,..我的运气:D – Shubhank 2012-02-10 11:21:31

+0

你可以在模拟器上运行它。它也会检测僵尸。模拟器不会崩溃,因为它有很多内存,不需要覆盖僵尸内存。该设备的内存和崩溃少得多,因为僵尸所使用的内存会被其他应用程序覆盖,导致无效访问。请原谅我可怜的英语。 – lluismontero 2012-02-10 11:25:40

+0

没有工作.... – Shubhank 2012-02-10 12:41:31

1

下面的答案已经赢得了奖金对我来说:) .....你可以试试你的问题......

链接:Getting to the bottom of crash

我发现的调试代码的最佳途径之一为崩溃。按照链接,调试技术:

http://www.cocoadev.com/index.pl?DebuggingAutorelease

你需要非常仔细地分析您的控制台来实际看看为什么发生崩溃。这让我几乎所有的都没有ARC启用代码...

希望这能帮助你....

的nJoy编码...的:)

+0

我会知道这样的任何错误..它不是关于调试..我遵循教程adwhirl..and它正在加载iAds正确..但在Admob它崩溃特定的错误..因此,Adwhirl APi内部可能有错误只有..我希望有人可能知道......这同样的事情正在我的其他应用程序中正常工作......更进一步..Admob API实施文件被锁定。所以我甚至不知道在这个过程中实际发生了什么。 – Shubhank 2012-02-19 19:02:26

+0

如果你说在其他应用程序中它的工作正常......那么它只能与你的编码有关......所以出于这个原因只能尝试使用这种方式......并获得最后堆栈跟踪并分析解决方案.. ..最好的运气 – DShah 2012-02-19 19:24:44

+0

对不起。但你是判断我是没有经验的..我已经尝试僵尸..它不会崩溃..我也经历了堆栈溢出..所以请保持你的答案记住,而不是整个其他很多的问题,通常过错的人是谁发布的问题..我提供了一些很好的答案赏金..你的答案似乎只是illuismontero的延伸.. – Shubhank 2012-02-20 03:53:33

0

即使这种情况发生在专有的Adwhirl代码,您可以通过打开指定的所有调试标记了解很多,例如,在How to break on __NSAutoreleaseNoPool中。这个答案讨论了大量的调试标志,而不仅仅是自动释放池标志。