快速了解这里发生的事情。
我有一个GameScene和一个GameOverUIController。游戏结束时,它将加载GameOverUIController,后者将加载xib,后者将加载MobFoxBannerView。
这是问题所在:如果您快速按下“再次播放”按钮或播放一轮超过大约3分钟的时间,则广告会在后台加载,但实际上无处可去,并且会崩溃。
我接受 friend 的建议,添加了ViewDidUnload以将bannerview设置为nil,但是它仍然崩溃...我不是最令人惊讶的程序员,但是我觉得我在某个地方犯了最愚蠢的错误...任何帮助非常感谢。我只是在这里使用错误的语法吗?
我做了以下事情。
我在GameOverUI实现上合成了bannerView。
在将UIwebview直接添加到GameOverUIController的xib接口(interface)构建器之前,现在将其手动添加到 View 中
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];
}
正在将其添加到错误的位置...现在可以正常运行。
最佳答案
我想你的问题出在
bannerView.delegate = self;
加载add时添加
顺便说一下,我对MobFox框架一无所知。这只是一个常见的反模式。
关于objective-c - MobFox iOS框架在卸载XIB时崩溃...我在这里做错了什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8454028/