Добавяне на таймер за получаване на iAd Interstitial (Xcode, swift)

Направих така, че когато потребителите щракнат върху един бутон, той ще показва междинна реклама, но не искам това. Искам, ако потребител използва приложение за 1 минута, то автоматично да показва реклама и след като потребителят затвори рекламата отново дойде след известно време.

ето моят код с бутон

var interAd = ADInterstitialAd()
var interAdView:UIView = UIView()

 var closeButton = UIButton.buttonWithType(UIButtonType.System) as! UIButton


override func viewDidLoad() {
    super.viewDidLoad()

    closeButton.frame = CGRectMake(10, 10, 20, 20)
    closeButton.layer.cornerRadius = 10
    closeButton.setTitle("X", forState: .Normal)
    closeButton.setTitleColor(UIColor.blackColor(), forState: .Normal)
    closeButton.backgroundColor = UIColor.whiteColor()
    closeButton.layer.borderColor = UIColor.blackColor().CGColor
    closeButton.layer.borderWidth = 1
    closeButton.addTarget(self, action: "close:", forControlEvents:   UIControlEvents.TouchDown)
  }
   func close(sender: UIButton) {
     closeButton.removeFromSuperview()
    interAdView.removeFromSuperview()

}

func loadAd() {
    println("load Ad")
    interAd = ADInterstitialAd()
    interAd.delegate = self

}

func interstitialAdDidLoad(interstitialAd: ADInterstitialAd!) {
  println("ad did load")

    interAdView = UIView()
    interAdView.frame = self.view.bounds
    view.addSubview(interAdView)

    interAd.presentInView(interAdView)
    UIViewController.prepareInterstitialAds()

    interAdView.addSubview(closeButton)
}
  func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!) {
    println("ad did not load")
}

   func interstitialAd(interstitialAd: ADInterstitialAd!, didFailWithError error: NSError!) {
    println("failed to recieve")
    println(error.localizedDescription)

    closeButton.removeFromSuperview()
    interAdView.removeFromSuperview()
}

@IBAction func ShowAds(sender: UIButton) {
    loadAd()

}

person Motivation gym5    schedule 25.09.2015    source източник
comment
рекламата ще се показва само веднъж, когато потребителят зареди приложение?   -  person Dharmesh Kheni    schedule 25.09.2015
comment
Да, искам нещо подобно @dharmeshkheni   -  person Motivation gym5    schedule 25.09.2015


Отговори (1)


Два начина да постигнете вашите изисквания.

Първо:

Можете да използвате GCD:

override func viewDidLoad() {
    super.viewDidLoad()
    let triggerTime = (Int64(NSEC_PER_SEC) * 60)   // set delay you time here.
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, triggerTime), dispatch_get_main_queue(), { () -> Void in
        self.loadAd()
    })
}

Второ:

Можете да използвате NSTimer:

override func viewDidLoad() {
    super.viewDidLoad()
     NSTimer.scheduledTimerWithTimeInterval(NSTimeInterval(60), target: self, selector: "loadAd", userInfo: nil, repeats: false)
}

Задайте параметъра за повторение на false, ако не искате да го повтаряте отново.

person Dharmesh Kheni    schedule 25.09.2015
comment
Можете ли да ми обясните втория метод? По кое време ще дойде ?@dharmeshkheni - person Motivation gym5; 25.09.2015
comment
След 60 секунди той ще извика метод loadAd . - person Dharmesh Kheni; 25.09.2015
comment
И още нещо, което не искам рекламата да се показва, като щракнете върху бутона. Искам да се показва автоматично - person Motivation gym5; 25.09.2015
comment
тогава не го наричайте метод за действие на бутона. - person Dharmesh Kheni; 25.09.2015