gpt4 book ai didi

objective-c - 如何在swift中使用其他类的指针

转载 作者:行者123 更新时间:2023-11-28 06:07:12 24 4
gpt4 key购买 nike

我正在将旧的 ObjectiveC 代码迁移到 swift。在 ObjcC 中有一个单独的类来处理我的 Admob 事件。在这个类中,我在 init 函数中创建了一个指针,当改变场景时,我可以使用这个指针来改变广告横幅的位置。

       @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,称为 _adsBannerPointer

您的 Swift 代码相同。它有两个方法,instance 方法 initAdssetAdsPos,以及一个变量,instance 变量 adsPointer.

在 Swift 中,类方法被称为类型方法(因为它们可以属于类、结构和枚举)并且通过使用关键字 static 来表示,类型 ( class) 变量也用 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 { ... }

HTH

关于objective-c - 如何在swift中使用其他类的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47859041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com