我已在我的项目中实施了adwhirl。我之前已经在我的项目中实现了它,所以我只是将它合并到我之前的项目中。
- (UIViewController *)viewControllerForPresentingModalView {
{
return self;
}
我在之前的项目中使用了这个..因为我的window.rootvviewcontroller只是自己的。但是在我目前的项目中,有很多屏幕我正在展示广告,所以我使用了:
- (UIViewController *)viewControllerForPresentingModalView {
{
return return [[(AppDelegate *)[[UIApplication sharedApplication] delegate] window] rootViewController] ;;
}
主要问题是程序崩溃了,现在仍然如此。起初一切都还好:iads测试广告已加载,但很少崩溃。我很快就明白这是因为 Admob 。它很少崩溃,因为大多数时候没有加载admob广告。
现在正在搜索这些崩溃,我遇到了一个问题,因为我在Xcode 4.2而不是之前的项目Xcode 4.0中完成了项目,因此我的窗口和视图控制器中存在强大的属性。我删除了它。
现在问题出在模拟器中它不会崩溃,但它会在设备中崩溃。
错误发生在将adview添加为子视图之后,- (UIViewController *)viewControllerForPresentingModalView
已经通过此功能但 adWhirlDidReceiveAd
方法之前。< / p>
实际崩溃是 [GADRequestPrivate spamSignals] EXC_BAD_ACCESS。
答案 0 :(得分:1)
以下答案已经为我赢得了奖励:) .....你可以尝试解决你的问题......
链接:Getting to the bottom of crash
我找到了调试Crash代码的最佳方法之一。按照调试技术的链接:
http://www.cocoadev.com/index.pl?DebuggingAutorelease
您需要非常仔细地分析您的控制台,以查看崩溃发生的实际原因。这对几乎所有未启用ARC的代码都有帮助。
答案 1 :(得分:0)
我建议您分析项目并查找内存泄漏和僵尸。您似乎正在向已发布的对象发送消息,从而导致无效的内存访问。僵尸检测无法在设备上运行,但您可以在模拟器上运行它。看看Xcode Instruments - Enable NSZombie Detection? Where is it?
希望它有所帮助。
答案 2 :(得分:0)
即使在专有的Adwhirl代码中发生这种情况,您也可以通过打开指定的所有调试标志来学习很多东西,例如,在How to break on __NSAutoreleaseNoPool中。这个答案讨论了很多调试标志,而不仅仅是自动释放池标志。