Как запустить функцию каждый n число сегментов?
У кого-нибудь есть приличный код для запуска функции каждый раз, когда происходит переход? Например, загружайте рекламу каждый раз, когда пользователь просматривает 10 сегментов в моем приложении.
На данный момент я делаю что-то подобное в моем следующем:
let chanceOfAd = Int(arc4random_uniform(UInt32(9)))
и тогда, если chanceOfAd == 0, тогда я буду загружать объявление. Это не идеально, так как вероятность загрузки рекламы составляет 1/10, а не каждые 10 сегментов. Конечно, это должно усреднить такое же количество рекламных объявлений, как если бы я выбрал опцию "каждые десять", но некоторые пользователи неизбежно получат больше рекламы, чем другие, из-за удачной природы функции в данный момент.
Поэтому вместо этого я хочу загружать рекламу каждые 10 раз, когда происходит переход.
2 ответа
Попробуйте объявить глобальную переменную, которая увеличивается каждый раз, когда функция prepareForSegue
называется.
prepareForSegue может выглядеть примерно так
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
segueCounter++
if (segueCounter % 10 == 0) {
//you know that on this segue you should load an ad.
//do something like telling the destination view controller to show the ad
}
//...
}
Либо подкласс, либо расширить UIStoryBoardSegue
класс и обычай perfom :
метод с использованием глобальной переменной.