私はこのコードを使用します.Iadが読み込みに失敗した場合、それはadmobを探します。アドモブが呼び出されるたびに大きなメモリスパイクに気づいた楽器を除き、すべてが正常に動作するように見えます。これを楽器を複数回通した後は、メモリリークが一度しか発生しませんでした。私はadmobでメモリリークについて話している人もいますが、これが修正されたかどうかはわかりませんでした。iosとadmob intergrationがメモリリークを引き起こしていますか?
私のコードはよく見えますか?だからうまくいけば、これは誰かを助けてくれるが、しばらくするとプログラムが大幅に遅くなってしまうので、私のアプリからadmobを取ってしまいます。また、sdkが8MBに近いこともわかりませんでした。
-(void)bannerViewDidLoadAd:(ADBannerView *)banner
{
if (!self.bannerIsVisible) {
[bannerView_ removeFromSuperview];
[UIView beginAnimations:@"animateAdBannerOn" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0.0, -50.0);
[UIView commitAnimations];
self.bannerIsVisible = YES;
}
}
-(void)callAdMob {
// Create a view of the standard size at the bottom of the screen.
bannerView_ = [[GADBannerView alloc]
initWithFrame:CGRectMake(0.0,
self.view.frame.size.height -
GAD_SIZE_320x50.height,
GAD_SIZE_320x50.width,
GAD_SIZE_320x50.height)];
// Specify the ad's "unit identifier." This is your AdMob Publisher ID.
bannerView_.adUnitID = @"";
// Let the runtime know which UIViewController to restore after taking
// the user wherever the ad goes and add it to the view hierarchy.
bannerView_.rootViewController = self;
[self.view addSubview:bannerView_];
// Initiate a generic request to load it with an ad.
[bannerView_ loadRequest:[GADRequest request]];
}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
if (self.bannerIsVisible) {
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0.0, 50.0);
[UIView commitAnimations];
self.bannerIsVisible = NO;
NSLog(@"bannerview did not receive any banner due to %@", error);
[self callAdMob];
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView.frame = CGRectOffset(adView.frame, 0.0, 367.0);
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
[self.view addSubview:adView];
adView.delegate = self;
self.bannerIsVisible = NO;
}
ARCを使用していますか?そうでない場合は、どこでも 'bannerView_'または' adView'を解放しているようには見えません。 'addSubview'はあなたが渡したビューを保持するので、' addSubview'に渡した後で自由にビューを解放することができます。 –
はい私はARCを使用しています – user1108720
このコードを使用する可能性のある人を更新するだけで、楽器を実行するときにこのコードでの減速に気付きました。私はデバイスの減速に気づいていません。 – user1108720