Swift 4.0學習之:@objc的使用

@objc的使用


知識點: 在Swift代碼中,使用@objc修飾後的類型,可以直接供Objective-C調用。
可以使用@objc修飾的類型有以下幾種:
1、未嵌套的類
2、協議
3、非泛型枚舉(僅限於原始值爲整形的類型)
4、類和協議中的屬性和方法
5、構造器和析構器
6、下標

注意點: Objective-C中所有的類都繼承自NSObjc,在Swift中的類需要供Objective-C調用的時候,也必須顯式的繼承NSObject。當然,隨便繼承一個OC中的類都可以,反正他們都繼承自NSObject。
小細節: Swift在某些方面非常的隨意親切,比方說類名,Swift可以使用中文命名,但OC卻只能使用ASCII碼,在使用@objc的時候,需要指定OC中指定的ASCII碼的名稱,舉個小例子如下

@objc(MyClass)
class 我的類: NSObject {
    @objc(greeting:)
    func 問候(名字: String) {
        print("你好 \(名字)")
    }
}

修飾協議: @objc修飾協議與修飾類一樣,需要注意的是,如果協議中有optional修飾的方法,就必須使用@objc來修飾

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

修飾枚舉: Swift中的枚舉類型功能增強了不少。OC中還是傳統的枚舉類型,必須使用整型作爲枚舉值。Swift中的枚舉如果要被@objc修飾,那麼就必須滿足原始值爲整型的限制條件。

發佈了68 篇原創文章 · 獲贊 96 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章