iAd在模拟器上运行但在设备上崩溃(ipad)

时间:2014-04-19 11:34:49

标签: ios ipad ios-simulator iad

我正在尝试将iAd集成到我的应用中,这就是我的工作

  1. 通过Xcode 5.1创建单个视图应用(设备类型通用)。
  2. 将iAd.framework添加到我的项目中。
  3. 在ViewController.h中导入<iAd/iAd.h>
  4. 在viewDidLoad方法中添加self.canDisplayBannerAds = YES;
  5. 在iPhone和iPad模拟器上编译并运行应用程序
  6. 该应用程序在两个模拟器上运行良好,我可以看到我的应用程序底部的横幅。

    但是当我在iPad上测试它(运行IOS 6.1)时,应用程序崩溃了,这就是我得到的。

    2014-04-19 19:25:56.409 TestiAd[12771:907] -[ViewController setCanDisplayBannerAds:]: unrecognized selector sent to instance 0x1fd7b620
    2014-04-19 19:25:56.413 TestiAd[12771:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController setCanDisplayBannerAds:]: unrecognized selector sent to instance 0x1fd7b620'
    *** First throw call stack:
    (0x336442a3 0x3b4e497f 0x33647e07 0x33646531 0x3359df68 0xfb125 0x3546b595 0x354abd79 0x354a7aed 0x354e91e9 0x354ac83f 0x354a484b 0x3544cc39 0x3544c6cd 0x3544c11b 0x371555a3 0x371551d3 0x33619173 0x33619117 0x33617f99 0x3358aebd 0x3358ad49 0x354a3485 0x354a0301 0xfb3a5 0x3b91bb20)
    libc++abi.dylib: terminate called throwing an exception
    (lldb) 
    

    我在SO上有很多类似的问题,但其中很多都与在iPad上运行iPhone应用程序作为可计算模式有关,但事实并非如此,我正在通用应用程序上进行测试。

1 个答案:

答案 0 :(得分:4)

问题出在iOS版本上 来自DoccanDisplayBannerAds在iOS7中引入,在iOS6上不存在。
所以,您可能想要这样做:

if ([self respondsToSelector:@selector(setCanDisplayBannerAds:)])
    self.canDisplayBannerAds = YES;