| import Foundation |
| |
| class MyClass : NSObject { |
| @objc var propertyUsedInKeyPath : NSObject? = nil |
| @objc dynamic var dynamicVarUsedInSelector : Int { return 2 } |
| @objc func overridden() {} |
| @objc func usedViaAnyObject() {} |
| @objc func unused() {} |
| } |
| |
| extension MyClass { |
| @objc func inExtensionAndOverridden() {} |
| } |
| |
| class MySubClass : MyClass { |
| override func overridden() {} |
| override func inExtensionAndOverridden() {} |
| } |
| |
| func test(object: AnyObject, mine: MyClass) { |
| _ = #selector(MyClass.overridden) |
| _ = #selector(getter: MyClass.dynamicVarUsedInSelector) |
| _ = #keyPath(MyClass.propertyUsedInKeyPath) |
| _ = object.usedViaAnyObject?() |
| } |
| |
| class SelfReferences : NSObject { |
| @objc var prop: Int = 2 |
| @objc func foo() { |
| _ = #selector(self.foo) |
| _ = #keyPath(prop) |
| } |
| |
| @objc func bar() { |
| _ = #selector(self.foo) |
| _ = #selector(self.bar) |
| } |
| } |