law*_*cko 2 delegates objective-c admob ios gadbannerview
我正在iOS上使用Google移动广告SDK并尝试展示一些广告.我的代码:
GADBannerView* bannerView = [[GADBannerView alloc] initWithAdSize:GADAdSizeFromCGSize(CGSizeMake(300, 250))];
bannerView.adUnitID = @"hidden";
bannerView.rootViewController = self;
bannerView.delegate = self;
GADRequest* request = [GADRequest request];
request.testDevices = @[ kGADSimulatorID ];
[bannerView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)
如果我在bannerView上面看到的代码后面添加到视图层次结构,这可以正常工作.但是,我不想在加载广告之前添加它,所以我想延迟它.我注意到,如果bannerView不在视图层次结构中,则根本不调用委托方法.此外,我找到了这个答案,这与我所观察到的一致.另一方面,这是来自GADBannerViewDelegate标头的引用:
/// Tells the delegate that an ad request successfully received an ad. The delegate may want to add
/// the banner view to the view hierarchy if it hasn't been added yet.
- (void)adViewDidReceiveAd:(GADBannerView *)bannerView;
Run Code Online (Sandbox Code Playgroud)
这表明即使视图不在层次结构中也应该可以接收那些委托回调,这正是我想要的.所以,任何想法我怎么能实现这一目标?
从 Admob SDK 7.56 升级到 8.2 后,我遇到了同样的问题:
他们更改了 GADBannerViewDelegate 协议的方法名称。
例如代替
-(void)adViewDidReceiveAd:(GADBannerView *)adView;
Run Code Online (Sandbox Code Playgroud)
就是现在
-(void)bannerViewDidReceiveAd:(GADBannerView *)bannerView;
Run Code Online (Sandbox Code Playgroud)
另请参阅 Admob SDK 版本 8 的迁移指南:
https ://developers.google.com/admob/ios/migration#methods_removedreplaced
| 归档时间: |
|
| 查看次数: |
2538 次 |
| 最近记录: |