Как запустить функцию каждый 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 : метод с использованием глобальной переменной.

Другие вопросы по тегам