gpt4 book ai didi

ios - 为什么 iAd 从它的 super View 中删除后仍然加载数据,并且可以停止吗?

转载 作者:可可西里 更新时间:2023-11-01 05:39:11 26 4
gpt4 key购买 nike

我有一个带有 iAds 的小应用程序,允许人们付费升级。

iAd 在应用程序的 NIB 中设置。我在主 UIViewController 的 viewDidLoad 方法中检查购买状态,并在 ADBannerView socket 成员上调用以下方法:

[adBanner removeFromSuperview];
adBanner = nil;

不幸的是,如果我观察设备的数据使用情况,仍然会为广告下载一些数据。

有什么方法可以正确终止 iAd,使其不加载任何数据吗?

我知道我可以通过编程方式创建 iAd View ,然后仅在用户未购买产品时添加它,但我的产品在 NIB 中运行良好,因此我不想更改它。

更新:

在我的 .h 文件中我有:

IBOutlet ADBannerView* adBanner;

- (void)viewDidLoad 方法的 .m 文件中,我有:

if (purchased) {
[adBanner removeFromSuperview];
adBanner.delegate = nil;
adBanner = nil;
}

我希望这足以在 iAd 有机会下载任何数据之前删除它。

唉,这还不足以阻止 View 下载数据。我怀疑它在那个时候被完全释放会有延迟——但我不知道该怎么做,除了调用 dealloc 本身。

有谁知道更好/正确的方法来完全销毁通过 XIB 加载并分配给 IBOutlet 的对象?

最佳答案

我怀疑你没有完全释放广告横幅。

您在创建 adBanner 时是否自动释放它?否则,您在此处显示的代码将无法正确发布横幅。

很可能,您没有自动释放它并且它被保留了。你需要做的是:

[adBanner release]; 

代替

adBanner = nil;

顺便说一下,这是无用的,因为它只将指针 adBanner 设置为 nil 但根本不释放对象。

关于ios - 为什么 iAd 从它的 super View 中删除后仍然加载数据,并且可以停止吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5961037/

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