Ios 将Google横幅添加到视图控制器内存的方法是否安全?

Ios 将Google横幅添加到视图控制器内存的方法是否安全?,ios,objective-c,reference-counting,Ios,Objective C,Reference Counting,在Google Admob/DFP教程[1]中,他们建议使用bannerView作为实例变量,但我不建议他们污染我的viewcontroller类,因此我有一个Util类,有一个方法返回自动删除的DFPBannerView - (DFPBannerView *) getBannerAds { DFPBannerView * bannerView; bannerView = [[[DFPBannerView alloc] initWithAdSize:kGADAdSizeSmartBann

在Google Admob/DFP教程[1]中,他们建议使用bannerView作为实例变量,但我不建议他们污染我的viewcontroller类,因此我有一个
Util
类,有一个方法返回自动删除的DFPBannerView

- (DFPBannerView *) getBannerAds
{
  DFPBannerView * bannerView;
  bannerView = [[[DFPBannerView alloc] initWithAdSize:kGADAdSizeSmartBannerPortrait] autorelease];
  ...
  return bannerView;
}
在我所有的视图控制器类中,如果我想在视图中添加横幅

DFPBannerView * bannerView = [self getBannerAds];
[self.view addSubview: bannerView];
问题:

  • 我的方法内存安全吗?是否存在内存泄漏?(我没有使用ARC)

  • [1]

    是的,代码在手动引用计数环境中的内存处理方面很好。(即非弧形)

    getBannerAds正在返回一个自动释放的对象,这是正确的

    当您使用view addSubview添加子视图时,self.view将保留bannerView,直到它需要它为止,然后也负责释放它