在swift中如果要获取一个方法的selector用#selector()实现。我们也知道OC中的属性其实是自动生成了getter和setter方法。
swift 3中支持获取属性的getter和setter方法。语法就是:#selector(getter: keypath )
和 #selector(setter: keypath )
。示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class Person: NSObject { dynamic var firstName: String dynamic let lastName: String dynamic var fullName: String { return "\(firstName) \(lastName)" } init(firstName: String, lastName: String) { self.firstName = firstName self.lastName = lastName } } let firstNameGetter = #selector(getter: Person.firstName) let firstNameSetter = #selector(setter: Person.firstName) |
这两个方法和OC中的签名一致。set方法签名就是setFirstName:
。
然后就可以正常使用了:
欢迎关注我的微博:@没故事的卓同学
相关链接:
SE0064-Referencing the Objective-C selector of property getters and setters