我们应该在viewDidLoad或viewDidAppear中调用广告吗?

时间:2012-12-28 01:24:09

标签: objective-c ios cocoa-touch admob iad

我们有一个标签密集的应用程序,它有5个标签可以来回使用。我们有iAds和admobs(作为没有iAd的国家的备份),我们在viewDidLoad中“调用”广告。相反,在viewDidAppear中调用它们会有所不同吗?然后在viewDidDisappear或shomething中删除它们不要搞砸框架等?这会给出更多的印象吗?

3 个答案:

答案 0 :(得分:1)

viewDidLoad:

  

viewDidLoad中   在控制器视图加载到内存后调用。

- (void)viewDidLoad
  

讨论   在视图控制器将其视图层次结构加载到内存后调用此方法。无论视图层次结构是从nib文件加载还是在loadView方法中以编程方式创建,都会调用此方法。您通常会覆盖此方法以对从nib文件加载的视图执行其他初始化。


viewDidAppear:

  

viewDidAppear:   通知视图控制器其视图已添加到视图层次结构中。

- (void)viewDidAppear:(BOOL)animated  
  

参数   动画   如果是,则使用动画将视图添加到窗口中。   讨论   您可以覆盖此方法以执行与显示视图相关的其他任务。如果重写此方法,则必须在实现中的某个时刻调用super。

回答

因此viewDidLoad比viewDidAppear稍早调用:唯一的区别是当viewDidAppear:已经绘制了视图时,相反在viewDidLoad中仍然需要绘制视图。

回答你的问题:

  

在viewDidAppear中调用它们会有所不同吗?

如果调用广告是一个缓慢的操作,那么您将首先看到以其颜色显示的视图,以及几段时间后的广告。但是,这必须太慢才能产生真正的差异。

  

然后在viewDidDisappear中移除它们或shomething不要搞砸框架等?

它肯定不是“搞砸框架”。

答案 1 :(得分:0)

你只需要在viewDidLoad中调用它

答案 2 :(得分:0)

将您的广告代码放入viewDidAppear :(并在viewDidDisappear中将其删除:)肯定会为您带来更多展示次数,但除非您是列入白名单的酒吧,否则您可能无论如何都会按每次点击费用获得报酬({{ 3}})。

在这种情况下,您不必在选项卡上更改创建和销毁GADBannerView对象的开销,而是创建一个在整个TabbedController中使用的单例GADBannerView(查看示例AdMob Help Center article)。