gpt4 book ai didi

objective-c - MobFox iOS 框架,当 XIB 卸载时崩溃......我在这里做错了什么?

转载 作者:可可西里 更新时间:2023-11-01 03:21:35 24 4
gpt4 key购买 nike

快速了解这里发生的事情。

我有一个 GameScene 和一个 GameOverUIController。当游戏结束时,它加载 GameOverUIController,后者加载 xib,xib 加载 MobFoxBannerView。

这就是问题所在:如果您快速按下“再次播放”按钮或播放一轮的时间超过大约 3 分钟,广告会在后台加载但基本上无处可去,并且会崩溃。

我听取了 friend 的建议,添加了 ViewDidUnload 以将 bannerview 设置为 nil,但它仍然崩溃......我不是公认的最了不起的程序员,但我觉得我在某个地方犯了最愚蠢的错误...... 。 任何帮助是极大的赞赏。我只是在这里使用了错误的语法吗?

我做了以下事情。

我在 GameOverUI 实现上合成了 bannerView。

在我将 UIwebview 直接添加到 GameOverUIController 的 xib Interface builder 之前,现在手动将它添加到 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 时(例如,由于网络不佳,它可能会非常慢)- 正在调用委托(delegate)方法,但释放了“self”- 因此会抛出运行时异常。

顺便说一下,我对 MobFox 框架一无所知。这只是一个常见的反模式。

关于objective-c - MobFox iOS 框架,当 XIB 卸载时崩溃......我在这里做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8454028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com