如何在 swift 中使用其他 类 的指针
How to use pointer from other classes in swift
我正在将旧的 ObjectiveC 代码迁移到 swift。在 ObjcC 中有一个单独的 class 来处理我的 Admob activity。
在此class我在初始化函数中创建了一个指针,当改变场景时,我可以使用这个指针来改变广告横幅的位置。
@implementation MyAdsSupport
+(id)ShowAds:(My_Ads_Position)posIndex
{
if (_adsBannerPointer == nil)
{
_adsBannerPointer = [[KTFAdsSupport alloc]initAds:posIndex];
}
else
{
[_adsBannerPointer setAdsPosition:posIndex];
}
return _adsBannerPointer;
}
在 Swift 中,我创建了 Admob class,并设法在屏幕上展示广告,但是当我尝试从另一个 class 调用指针时,它 returns 总是零。
这是我的 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:
,以及 class 方法 ShowAds:
。后者使用一个变量,大概声明为 static
,称为 _adsBannerPointer
.
您的 Swift 代码 与 不同。它有两种方法,instance方法initAds
和setAdsPos
,以及一个变量,instance变量adsPointer
.
在Swift中,class方法被称为类型方法(因为它们可以属于classes、结构和枚举)并且是使用关键字 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
我正在将旧的 ObjectiveC 代码迁移到 swift。在 ObjcC 中有一个单独的 class 来处理我的 Admob activity。 在此class我在初始化函数中创建了一个指针,当改变场景时,我可以使用这个指针来改变广告横幅的位置。
@implementation MyAdsSupport
+(id)ShowAds:(My_Ads_Position)posIndex
{
if (_adsBannerPointer == nil)
{
_adsBannerPointer = [[KTFAdsSupport alloc]initAds:posIndex];
}
else
{
[_adsBannerPointer setAdsPosition:posIndex];
}
return _adsBannerPointer;
}
在 Swift 中,我创建了 Admob class,并设法在屏幕上展示广告,但是当我尝试从另一个 class 调用指针时,它 returns 总是零。 这是我的 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:
,以及 class 方法 ShowAds:
。后者使用一个变量,大概声明为 static
,称为 _adsBannerPointer
.
您的 Swift 代码 与 不同。它有两种方法,instance方法initAds
和setAdsPos
,以及一个变量,instance变量adsPointer
.
在Swift中,class方法被称为类型方法(因为它们可以属于classes、结构和枚举)并且是使用关键字 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