我对AdMob和雪碧套件有问题。
每次广告将显示或加载,它将大大增加内存使用!当EndGameScene打开时,它将调用"showAd",当重播按钮被按下"loadAd“时。
广告效果很好。
当游戏开始时,内存的使用量大约是50 it,之后很少有广告,它至少是70-100 it!
所以我做错的是:
GameViewController.m
- (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;}
谢谢!
发布于 2016-03-19 22:44:59
每次都要创建一个新的GADInterstitial对象,该对象启动一个加载请求。我想因为它在等待答案,所以它再也不会从记忆中释放出来了。更好的方法是将GADInterstitial存储在全局属性中,如果需要新的广告,只需调用新的loadRequest即可。
https://stackoverflow.com/questions/36105482
复制相似问题