Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有自定义GADRewardBasedVideoAd类崩溃的iOS_Ios_Swift_Google Admob - Fatal编程技术网

具有自定义GADRewardBasedVideoAd类崩溃的iOS

具有自定义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

我在我的应用程序中使用谷歌广告。因为我的目的,我创造了习惯

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的选择器无法识别

如果我在类gadrewardBasedVideAd上更改rewardAddNewsAd,而不是我的自定义子类,则一切正常

这段代码一直有效,直到谷歌将GAD更新到最新版本



我使用的是Swift 4.1

可能这是一个bug,但如中所述,
GADRewardBasedVideoAd
具有单例设计,您不应该创建自己的子类。使用
GADRewardBasedVideoAd.shared
访问
GADRewardBasedVideoAd
类的实例


作为一个选项,您可以将
AdState
存储在
VideoAd
之外的某个位置。例如,在
ViewController

中,我再次没有使用singleton,但我没有使用GADRewardBasedVideoAd的子类。目前,它正在发挥作用。我想说的是,每件物品都有不同的“硬币”