私は、プロトコルと委任パターンがSwiftでどのように機能するかを質問したいと思います。Swift:プロトコルと委任パターンについて
iOSプラットフォームでgoogle ad sdkを試用できるアプリケーションがあります。しかし、私は何かが足りなくて、方法の仕方について混乱しています。
私はこれらのコードをいくつか持っています。上記のコードについて
import UIKit
import GoogleMobileAds
class ViewController: UIViewController, GADInterstitialDelegate {
@IBOutlet weak var bannerView: GADBannerView!
let request = GADRequest()
var interstitial: GADInterstitial!
@IBOutlet weak var mylbl: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
bannerView.adUnitID = "xxx"
bannerView.rootViewController = self
bannerView.loadRequest(self.request)
interstitial = createAndLoadInterstitial()
}
func createAndLoadInterstitial() -> GADInterstitial {
let interstitial = GADInterstitial(adUnitID: "xxx")
interstitial.delegate = self
interstitial.loadRequest(self.request)
return interstitial
}
func interstitialDidDismissScreen(ad: GADInterstitial!) {
interstitial = createAndLoadInterstitial()
mylbl.text = "No ad"
}
func interstitialDidReceiveAd(ad: GADInterstitial!) {
mylbl.text = "received ad"
}
@IBAction func touched(sender: AnyObject) {
if interstitial.isReady
{
interstitial.presentFromRootViewController(self)
}
else
{
mylbl.text = "Not Ready!"
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
、私はメソッドとプロパティのプロトコルの設計図は、クラスまたは構造体、または列挙型を採用することを認識です。プロトコルで定義されているメソッドまたはプロパティは、関連デリゲートが採用したクラスで実装する必要があります。
私はそれとcofusedポイントを要求したい: "interstitialDidDismissScreen"という名前のメソッドは、デリゲート "GADInsterstitialDelegate"から継承されていますが、インタースティシャル広告の閉じるボタンを押してメソッドを処理する方法。 Googleのエンジニアがどのように実装し、どのようにこの動作を成功させるかご協力いただきありがとうございます。
いいえハック、
OMG!この答えは、より輝かしく、開いており、過小評価されています。あなたのバーコードの例は素晴らしいです。貴重な答えをありがとう!私は完全に私が行方不明と何がポイントであることを理解!私はこのアイデアが私たちのオブジェクトやクラスの抽象を別のものから守っていると思います。抽象化のための良いパターンも私は思います。正確には、AdMob SDKのコードは正しく閉鎖されていますか?クラスが何をしているのかわからない。それは単にエンドポイントを与え、出力を使用します。完璧。そんなにありがとうございました。 –