Objective c 如何在swift中使用来自其他类的指针
我正在把我的旧Objective代码迁移到swift。在ObjcC中,有一个单独的类来处理我的Admob活动。 在这个类中,我在init func中创建了一个指针,当更改场景时,我可以使用这个指针来更改广告横幅的位置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) {
@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 { ... }
嗯