2017-12-17 14 views
1

私は古いObjectiveCコードをすぐに移しています。 ObjcCには、Admobのアクティビティを処理する別のクラスがありました。 このクラスでは、init funcにポインタを作成しました。シーンを変更するときに、このポインタを使用して広告バナーの位置を変更できます。 すぐに他のクラスのポインターを使う方法

 @implementation MyAdsSupport 

    +(id)ShowAds:(My_Ads_Position)posIndex 
    { 
     if (_adsBannerPointer == nil) 
     { 
      _adsBannerPointer = [[KTFAdsSupport alloc]initAds:posIndex]; 
     } 
     else 
     { 
      [_adsBannerPointer setAdsPosition:posIndex]; 
     } 
     return _adsBannerPointer; 
    } 

はスウィフトでは、私はAdmobのクラスを作成し、画面上に広告を提示するために管理が、私は別のクラスからポインタを呼び出すしようとすると、それは常にnilを返します。ここ は私のスウィフトコード:

私は任意のシーンからの広告バナーを達することができるようにスウィフトにポインタを設定するにはどうすればよい
var adsPointer: My_Ads_Support! 

func initAds(myView: UIViewController, atPos: My_Ads_Position) -> KTF_Ads_Support { 


    if adsPointer == nil { 
     adsPointer = self 
     adsPointer.ShowAds(myView: myView, atPos: atPos) 
    } 
    else 
    { 
     print("adsPointer ALIVE") 
     adsPointer.setAdsPos(atPos: atPos) 
    } 
    return self.adsPointer! 
} 

?あなたのObjective-Cのコードでは

答えて

1

あなたは方法、インスタンス方法initAds:setAdsPosition:、およびクラスメソッドShowAds:を持っています。後者は、_adsBannerPointerと呼ばれるおそらくstaticと宣言された変数を使用します。

スウィフトコードはではなく、と同じです。 のインスタンスのメソッドinitAdssetAdsPosの2つのメソッドと、1つの変数のインスタンスの変数adsPointerの2つのメソッドがあります。スウィフトクラスメソッドで

型のメソッドと呼ばれている(彼らはクラス、構造体と列挙に属することができるよう)とキーワードstaticの使用によって示され、型(クラス)変数もstaticで示しています。

static var adsPointer: My_Ads_Support! 

// instance init 
init(startingPos : My_Ads_Position) { ... } 

// instance set position 
fun setAdsPos(atPos : My_Ads_Position) { ... } 

static func showAds(myView: UIViewController, atPos: My_Ads_Position) -> KTF_Ads_Support { ... } 

HTH

+0

おかげで答えのためにたくさん:だからあなたのObjective-Cモデルに従うために、あなたはの線に沿って何かを必要とします!それは素晴らしかった! – EranKT

関連する問題