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