Just My Life & My Work

隨著Swift發展日益盛行,以Objective C為主開發的我要開始與Swift「交互作用」,這次主題是在Objective C使用Swift的Singleton,這看似很容易達成的用法,卻在我又多了C語言來混用,就變得複雜啊~

[iOS] 在Objective C使用Swift的Singleton.png

  • .swfit:可以在Swift使用Objective C。
  • .m:可以在Objective C使用Swift。
  • .mm:可以在Objective C使用C。

原以為可以在.mm中再使用Swift,卻被編譯出其他問題,目前我沒找到可以直接同時使用三種語言的解法,倒是有拐個彎的替代作法如上圖。

Swift 4確認可用:

@objc class CharacteristicViewController : UIViewController {

@objc static let sharedInstance = CharacteristicViewController()

}

@objc func happyPrint() {
print(“Singleton worked")
}

 

想要給Objective C使用,記得要加@objc讓編譯器辨識。

Objective C部分:

#import “TestPatch-Swift.h"

– (void)viewDidLoad {
[super viewDidLoad];

CharacteristicViewController *characteristicViewController = [CharacteristicViewController sharedInstance];

[characteristicViewController happyPrint];
}

先暫時這麼做吧~

參考:iOS – Can’t access Swift Singleton from Objective-C

 

廣告

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

w

連結到 %s

標籤雲

%d 位部落客按了讚: