具有自定义GADRewardBasedVideoAd类崩溃的iOS
我在我的应用程序中使用谷歌广告。因为我的目的,我创造了习惯 GADRewardBasedVideoAd类。因此,我的代码如下所示:具有自定义GADRewardBasedVideoAd类崩溃的iOS,ios,swift,google-admob,Ios,Swift,Google Admob,我在我的应用程序中使用谷歌广告。因为我的目的,我创造了习惯 GADRewardBasedVideoAd类。因此,我的代码如下所示: enum AdState { case rewarded case loaded case unknown case error } class VideoAd: GADRewardBasedVideoAd { var adState: AdState = .unknown } 和一些ViewController: cla
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的选择器无法识别
如果我在类gadrewardBasedVideAd上更改rewardAddNewsAd,而不是我的自定义子类,则一切正常
这段代码一直有效,直到谷歌将GAD更新到最新版本
我使用的是Swift 4.1可能这是一个bug,但如中所述,
GADRewardBasedVideoAd
具有单例设计,您不应该创建自己的子类。使用GADRewardBasedVideoAd.shared
访问GADRewardBasedVideoAd
类的实例
作为一个选项,您可以将
AdState
存储在VideoAd
之外的某个位置。例如,在ViewController
中,我再次没有使用singleton,但我没有使用GADRewardBasedVideoAd的子类。目前,它正在发挥作用。我想说的是,每件物品都有不同的“硬币”