iAd 在模拟器上工作但在设备上崩溃(ipad)
Posted
技术标签:
【中文标题】iAd 在模拟器上工作但在设备上崩溃(ipad)【英文标题】:iAd works on simulator but crash on device(ipad) 【发布时间】:2014-04-19 11:34:48 【问题描述】:我正在尝试将 iAd 集成到我的应用中,这就是我所做的
-
通过 Xcode 5.1 创建单视图应用(设备类型 universal)。
将 iAd.framework 添加到我的项目中。
在 ViewController.h 中导入
<iAd/iAd.h>
在 viewDidLoad 方法中添加self.canDisplayBannerAds = YES;
。
在 iPhone 和 iPad 模拟器上编译并运行应用程序
该应用在两个模拟器上都运行良好,我可以在我的应用底部看到横幅。
但是当我在我的 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】:问题出在 iOS 版本上。
来自Doc:canDisplayBannerAds
在iOS7中引入,在iOS6上不存在..
所以,你可能想做:
if ([self respondsToSelector:@selector(setCanDisplayBannerAds:)])
self.canDisplayBannerAds = YES;
【讨论】:
谢谢,应该是if ([self respondsToSelector:@selector(setCanDisplayBannerAds:)])
矿机和模拟器都是iOS 7及以上,但是if([self respondsToSelector:@selector(setCanDisplayBannerAds:)])返回false。
@bagusflyer: 自己是UIViewController
吗?以上是关于iAd 在模拟器上工作但在设备上崩溃(ipad)的主要内容,如果未能解决你的问题,请参考以下文章