Objective c 如何在swift中使用来自其他类的指针

Objective c 如何在swift中使用来自其他类的指针,objective-c,swift,pointers,viewcontroller,scene,Objective C,Swift,Pointers,Viewcontroller,Scene,我正在把我的旧Objective代码迁移到swift。在ObjcC中,有一个单独的类来处理我的Admob活动。 在这个类中,我在init func中创建了一个指针,当更改场景时,我可以使用这个指针来更改广告横幅的位置 @implementation MyAdsSupport +(id)ShowAds:(My_Ads_Position)posIndex { if (_adsBannerPointer == nil) {

我正在把我的旧Objective代码迁移到swift。在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;
    }
在Swift中,我创建了Admob类,并设法在屏幕上显示广告,但当我尝试从另一个类调用指针时,它总是返回nil。 这是我的Swift代码:

   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!
}

我如何在Swift中设置指针,以便能够从任何场景到达广告横幅?

在Objective-C代码中,您有三种方法,实例方法
initAds:
setAdsPosition:
,以及类方法
ShowAds:
。后者使用一个变量,可能声明为
static
,称为
\u adsBannerPointer

你的Swift代码不一样。它有两个方法,实例方法
initAds
setAdsPos
,还有一个变量,实例变量
adsPointer

在Swift中,类方法被称为类型方法(因为它们可以属于类、结构和枚举),并通过使用关键字
static
来表示,类型(类)变量也用
static
表示。因此,要遵循您的Objective-C模型,您需要以下几点:

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 { ... }