首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AdMob间隙记忆泄漏?雪碧工具包

AdMob间隙记忆泄漏?雪碧工具包
EN

Stack Overflow用户
提问于 2016-03-19 18:26:28
回答 1查看 259关注 0票数 1

我对AdMob和雪碧套件有问题。

每次广告将显示或加载,它将大大增加内存使用!当EndGameScene打开时,它将调用"showAd",当重播按钮被按下"loadAd“时。

广告效果很好。

当游戏开始时,内存的使用量大约是50 it,之后很少有广告,它至少是70-100 it!

所以我做错的是:

GameViewController.m

代码语言:javascript
运行
复制
- (void)viewDidLoad{
[super viewDidLoad];



[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:@"showAd" object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:@"loadAd" object:nil];

self.interstitial = [self createAndLoadInterstitial];
self.interstitial = [[GADInterstitial alloc] initWithAdUnitID:@"ca-app-pub-<id>"];

GADRequest *request = [GADRequest request];
// Requests test ads on test devices.
request.testDevices = @[@"0000000"];
[self.interstitial loadRequest:request];

//etc
}


- (void)handleNotification:(NSNotification *)notification{
if ([notification.name isEqualToString:@"showAd"]) {
    if (self.interstitial.isReady) {
        [ self.interstitial presentFromRootViewController:self];
    }

    else {

    }

}

if ([notification.name isEqualToString:@"loadAd"]) {
   self.interstitial = [self createAndLoadInterstitial];
}
}
- (GADInterstitial *)createAndLoadInterstitial {
GADInterstitial *interstitial =
[[GADInterstitial alloc] initWithAdUnitID:@"ca-app-pub-<id>"];
interstitial.delegate = self;
[interstitial loadRequest:[GADRequest request]];
return interstitial;}

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-19 22:44:59

每次都要创建一个新的GADInterstitial对象,该对象启动一个加载请求。我想因为它在等待答案,所以它再也不会从记忆中释放出来了。更好的方法是将GADInterstitial存储在全局属性中,如果需要新的广告,只需调用新的loadRequest即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36105482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档