| // RUN: %target-run-simple-swift | %FileCheck %s |
| // REQUIRES: executable_test |
| |
| // REQUIRES: objc_interop |
| |
| |
| import Foundation |
| |
| class C : NSObject { |
| static let i = 2 |
| static var j = "Hello" |
| static var k: Double { |
| return 3.14 |
| } |
| } |
| |
| // CHECK: true |
| print(C.self.responds(to: Selector("i"))) |
| |
| // CHECK: 2 |
| print(C.i) |
| |
| // CHECK: false |
| print(C.self.responds(to: Selector("setI:"))) |
| |
| // CHECK: true |
| print(C.self.responds(to: Selector("j"))) |
| |
| // CHECK: Hello |
| print(C.j) |
| |
| C.j = "World" |
| |
| // CHECK: World |
| print(C.j) |
| |
| // CHECK: true |
| print(C.self.responds(to: Selector("setJ:"))) |
| |
| // CHECK: Test |
| C.performSelector(onMainThread: Selector("setJ:"), with: "Test", waitUntilDone: true) |
| print(C.j) |
| |
| // CHECK: OK |
| C.j = "OK" |
| print(C.j) |
| |
| // CHECK: true |
| print(C.self.responds(to: Selector("k"))) |
| |
| // CHECK: 3.14 |
| print(C.k) |
| |
| // CHECK: false |
| print(C.self.responds(to: Selector("setK:"))) |