如何在ARC下释放GADBannerView?

3

这似乎是个愚蠢的问题,但我似乎不能释放adMob GADBannerView。

Admob文档中提到在使用ARC时不要调用“release”。不用说你不能调用release,因为这是不被允许的,并会生成错误。我尝试了以下方法:

@property (nonatomic, strong)  GADBannerView *adMobView;

 [adMobView removeFromSuperview];
 adMobView.delegate = nil;
 adMobView = nil;

但是没有任何反应。它变成了nil,但仍然停留在屏幕上。它应该是一个子类化的UIView。最好的情况下,我可以隐藏它,但它仍然会接收广告,并且显然会留在内存中。

有什么想法吗?

1个回答

1
尝试使用弱引用。
 @property (nonatomic, weak)  GADBannerView *adMobView;

弱引用

弱引用与强引用类似,但它不会将引用计数加1。它不是该对象的拥有者,而只是持有对其的引用。如果对象的引用计数降至0,即使您仍然在此处指向它,它也将从内存中被释放。

点击此处了解更多


它在分配后被释放,编译器甚至会警告我。我认为这不是引用计数的问题,而是AdMob SDK根本不支持ARC。将一个对象置空并不能从内存中移除它,它必须等待释放,但在ARC中这是非法的。 - Tibidabo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接