swift学习_@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修饰协议与修饰类一样,需要注意的是,如果协议中有optional修饰的方法,就必须使用@objc来修饰

修饰枚举: Swift中的枚举类型功能增强了不少。OC中还是传统的枚举类型,必须使用整型作为枚举值。Swift中的枚举如果要被@objc修饰,那么就必须满足原始值为整型的限制条件。

@objc(MyClass)

class 我的类: NSObject {

    @objc(greeting:)

    func 问候(名字: String) {

        print("你好 \(名字)")

    }}


@objc protocol CounterDataSource {

    optional func incrementForCount(count: Int) -> Int 

    optional var fixedIncrement: Int { get } 

}

你可能感兴趣的:(swift学习_@objc的使用)