gpt4 book ai didi

ios - 如果 View 不在 View 层次结构中,则不调用 GADBannerView 委托(delegate)方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:12:26 25 4
gpt4 key购买 nike

我正在 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];

如果我将 bannerView 添加到您在上面看到的代码之后的 View 层次结构中,这会很好地工作。但是,我真的不想在广告加载之前添加它,所以我想延迟它。我注意到如果 bannerView 不在 View 层次结构中,则根本不会调用委托(delegate)方法。此外,我找到了this answer ,这与我观察到的一致。另一方面,这是来自 GADBannerViewDelegate header 的引述:

/// 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;

这表明即使 View 不在层次结构中,也应该可以接收这些委托(delegate)回调,这正是我想要的。那么,我有什么想法可以实现这一目标吗?

最佳答案

好的,所以这里的问题是我没有保留对 bannerView 的引用。它在方法返回后被释放,这就是未调用委托(delegate)方法的原因。

关于ios - 如果 View 不在 View 层次结构中,则不调用 GADBannerView 委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37750867/

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