我在我的应用中使用Google Ads。由于我的目的,我创建了自定义。
GADRewardBasedVideoAd 类。所以我的代码看起来像这样:
enum AdState {
case rewarded
case loaded
case unknown
case error
}
class VideoAd: GADRewardBasedVideoAd {
var adState: AdState = .unknown
}
还有一些ViewController:
class ViewController: UIViewController {
let rewardAddNewsAd = VideoAd()
...
rewardAddNewsAd.delegate = self
}
在我设置代表应用因
而崩溃的代码行中[App.VideoAd setDelegate:]:无法识别的选择器已发送到实例0x281c7fd20
如果我在类 GADRewardBasedVideoAd 上更改了 rewardAddNewsAd 而不是我的自定义子类,则一切正常。
该代码在Google将GAD更新到最新版本之前一直有效。
我正在使用Swift 4.1
答案 0 :(得分:1)
也许这是一个错误,但正如official site中所述,GADRewardBasedVideoAd
具有单例设计,因此您不应创建自己的子类。使用GADRewardBasedVideoAd.shared
访问GADRewardBasedVideoAd
类的实例。
作为一种选择,您可以将AdState
存储在VideoAd
之外的某个地方。例如,在ViewController
中。
答案 1 :(得分:0)
我再一次没有使用单例,但没有将子类用于GADRewardBasedVideoAd。目前,它正在工作。我的意思是我为每个对象获取了不同的“硬币”。