iOS с пользовательским падением класса GADRewardBasedVideoAd - PullRequest
0 голосов
/ 09 октября 2018

Я использую 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

Если я изменяю rewardAddNewsAd на класс GADRewardBasedVideoAd , а не мой пользовательский подкласс, все работаетхорошо.

Этот код работал, пока Google не обновил GAD до последней версии.


Я пользуюсь Swift 4.1

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Я снова использовал не синглтон, но я не использовал свой подкласс для GADRewardBasedVideoAd.На данный момент это работает.Я хотел получить разные «монеты» для каждого объекта.

0 голосов
/ 09 октября 2018

Возможно, это ошибка, но, как описано в на официальном сайте , GADRewardBasedVideoAd имеет одноэлементный дизайн, и вы не должны создавать свои собственные подклассы.Используйте GADRewardBasedVideoAd.shared для доступа к экземпляру класса GADRewardBasedVideoAd.

Как вариант, вы можете хранить AdState где-то за пределами VideoAd.Например, в ViewController.

...