Swift中@objc的使用

Swift中@objc的使用

在Swift代碼中,使用@objc修飾后的類型,可以直接供Objective-C調(diào)用
可以使用@objc修飾的類型:

  • 未嵌套的類
  • 協(xié)議
  • 非泛型枚舉(僅限于原始值為整形的類型)
  • 類和協(xié)議中的屬性和方法
  • 構(gòu)造器和析構(gòu)器
  • 下標(biāo)

@objc class MyClass: NSObject {
}

Objective-C中所有的類都需要繼承自NSObject,Swift中的類需要供Objective-C調(diào)用的時(shí)候,自然也需要顯式繼承自NSObject。
另外Swift中的類名可以使用中文命名,而Objective-C中的卻只能使用ASCII碼,在使用@objc時(shí),需要指定Objective-C中使用的ASCII名稱。

@objc(MyClass)
class 新的類: NSObject {
    @objc(configData:)
    func 賦值操作(名字: String) {
        print("哈嘍,\(名字)")
    }
}

協(xié)議

@objc修飾協(xié)議與修飾類一樣,需要注意的是,如果協(xié)議中有optional修飾的方法,就必須使用@objc來(lái)修飾


@objc protocol CounterDataSource {
    optional func incrementForCount(count: Int) -> Int
    optional var fixedIncrement: Int { get }
}

枚舉

Swift中的枚舉類型支持自定義類型。Objective-C中還是傳統(tǒng)的枚舉類型,必須使用整形原始值。Swift

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容