首页 > 解决方案 > 函数设计为每 15 次单击执行一次,但始终在第一次单击时执行

问题描述

我有一个计数器,用于在用户每次点击“再次播放”时显示一个广告。在第 15 场比赛中,他们得到了一个广告。问题是它总是在第一次点击后显示一个广告(函数运行),然后它遵循 15 点击逻辑。我想解决这个问题,因为广告在游戏中来得太早了。这是我的代码:

@objc func playAgain(_ sender: Any) {
    if counter % 15 == 0 {
        if Appodeal.isReadyForShow(with: .interstitial) {
            Appodeal.showAd(AppodealShowStyle.interstitial, rootViewController: self)
        } else {
                let storyboard = UIStoryboard(name: "Main", bundle: nil)
                let controller = storyboard.instantiateViewController(withIdentifier: "HouseAd")
                self.present(controller, animated: true, completion: nil)
                print("Ad wasn't ready")
        }
    }
    counter += 1
}

我希望它在每 15 次点击后显示,但它总是在第一次点击后运行,然后遵守逻辑。

标签: swift

解决方案


增加counterbeforeif语句的值,因此在第一次单击后出现条件的值将是 1 而不是 0(0%15==0返回true)。每次计数器为 15 时,您也可以将值更改为 0,然后您可以比较两个数字:

counter += 1
if counter == 15 { 
    counter = 0
    ...
}

推荐阅读