MobFox iOS 框架,XIB 卸载时崩溃......我在这里做错了啥?
Posted
技术标签:
【中文标题】MobFox iOS 框架,XIB 卸载时崩溃......我在这里做错了啥?【英文标题】:MobFox iOS Framework, Crashes When XIB unloaded... what am I doing wrong here?MobFox iOS 框架,XIB 卸载时崩溃......我在这里做错了什么? 【发布时间】:2012-01-17 05:59:11 【问题描述】:这里发生的事情的简要概述。
我有一个 GameScene 和一个 GameOverUIController。游戏结束时加载GameOverUIController,加载xib,加载MobFoxBannerView。
问题出在:如果您将“再次播放”按钮推得快或者您玩了超过 3 分钟的回合,广告会在后台加载,但实际上无处可去,然后崩溃。
我听取了朋友的建议,添加 ViewDidUnload 以将横幅视图设置为 nil,但它仍然崩溃......我不是公认的最了不起的程序员,但我觉得我在某个地方犯了最愚蠢的错误...... 。 任何帮助是极大的赞赏。我只是在这里使用了错误的语法吗?
我做了以下事情。
我在 GameOverUI 实现上合成了bannerView。
现在手动将它添加到视图中,在我将 UIwebview 直接添加到 GameOverUIController 的 xib 界面构建器之前
self.bannerView = [[[MobFoxBannerView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)] autorelease];
bannerView.delegate = self;
[self.view addSubview:bannerView];
[self.view bringSubviewToFront:bannerView];
这就是我的主要实现。所以每次加载 GameOver 屏幕时,它都会请求一个新的添加。
然后我在头文件中设置值。
-(NSString *) publisherIdForMobFoxBannerView:(MobFoxBannerView *)banner;
@property (nonatomic, retain) MobFoxBannerView *bannerView;
并在 GameOverUIController.m 底部设置我的发布者 ID
- (NSString *)publisherIdForMobFoxBannerView:(MobFoxBannerView *)banner
return @"xxxxxxxxxxxx";
然后...仍然会崩溃,所以我尝试将其设置为 nil 希望这会起作用...但我不确定语法...
在 GameOverUIController.m 上
- (void)viewDidUnload
[super viewDidUnload];
self.bannerView = nil;
// or ? bannerView.delegate = nil;
这些行都不行……我完全不知所措。除非我能在周末结束之前解决这个问题,否则我会转移到另一个广告平台。我现在存在的祸根。任何帮助将不胜感激。非常感谢
编辑:
想通了... 与 ViewUnload 无关....
- (void)dealloc
bannerView.delegate = nil;
[super dealloc];
将其添加到错误的位置...现在完美运行。
【问题讨论】:
【参考方案1】:我猜你的问题出在
bannerView.delegate = self;
加载 add 时(例如,由于网络不佳,它可能非常慢) - 正在调用委托方法,但释放了“self” - 因此引发运行时异常。
顺便说一句,我对 MobFox 框架一无所知。这只是一种常见的反模式。
【讨论】:
以上是关于MobFox iOS 框架,XIB 卸载时崩溃......我在这里做错了啥?的主要内容,如果未能解决你的问题,请参考以下文章
在 XIB 中添加手势时,iOS 应用程序崩溃并显示消息“-[UITapGestureRecognizer setFrame:]”
来自 xib 的 UIControl 在 ios 7.1 上崩溃