diff --git a/RxCocoa/Common/CLLocationManager+Rx.swift b/RxCocoa/Common/CLLocationManager+Rx.swift index 47ba0562..18318c7c 100644 --- a/RxCocoa/Common/CLLocationManager+Rx.swift +++ b/RxCocoa/Common/CLLocationManager+Rx.swift @@ -45,7 +45,7 @@ extension CLLocationManager { } } - #if os(iOS) || os(watchOS) || os(OSX) + #if os(iOS) || os(OSX) /** Reactive wrapper for `delegate` message. */ diff --git a/RxCocoa/Common/Observables/Implementations/ControlTarget.swift b/RxCocoa/Common/Observables/Implementations/ControlTarget.swift index 91a44b57..ade22a28 100644 --- a/RxCocoa/Common/Observables/Implementations/ControlTarget.swift +++ b/RxCocoa/Common/Observables/Implementations/ControlTarget.swift @@ -28,10 +28,10 @@ import RxSwift class ControlTarget: RxTarget { typealias Callback = (Control) -> Void - let selector: Selector = #selector(GestureTarget.eventHandler(_:)) + let selector: Selector = #selector(ControlTarget.eventHandler(_:)) weak var control: Control? - #if os(iOS) || os(tvOS) +#if os(iOS) || os(tvOS) let controlEvents: UIControlEvents #endif var callback: Callback? diff --git a/RxCocoa/iOS/UICollectionView+Rx.swift b/RxCocoa/iOS/UICollectionView+Rx.swift index f5c8a895..1f52db3c 100644 --- a/RxCocoa/iOS/UICollectionView+Rx.swift +++ b/RxCocoa/iOS/UICollectionView+Rx.swift @@ -221,7 +221,7 @@ extension UICollectionView { */ public var rx_didUpdateFocusInContextWithAnimationCoordinator: ControlEvent<(context: UIFocusUpdateContext, animationCoordinator: UIFocusAnimationCoordinator)> { - let source = rx_delegate.observe("collectionView:didUpdateFocusInContext:withAnimationCoordinator:") + let source = rx_delegate.observe(#selector(UICollectionViewDelegate.collectionView(_:didUpdateFocusInContext:withAnimationCoordinator:))) .map { a -> (context: UIFocusUpdateContext, animationCoordinator: UIFocusAnimationCoordinator) in let context = a[1] as! UIFocusUpdateContext let animationCoordinator = a[2] as! UIFocusAnimationCoordinator diff --git a/RxCocoa/iOS/UITableView+Rx.swift b/RxCocoa/iOS/UITableView+Rx.swift index 9a7ec666..50661401 100644 --- a/RxCocoa/iOS/UITableView+Rx.swift +++ b/RxCocoa/iOS/UITableView+Rx.swift @@ -278,7 +278,7 @@ extension UITableView { */ public var rx_didUpdateFocusInContextWithAnimationCoordinator: ControlEvent<(context: UIFocusUpdateContext, animationCoordinator: UIFocusAnimationCoordinator)> { - let source = rx_delegate.observe("tableView:didUpdateFocusInContext:withAnimationCoordinator:") + let source = rx_delegate.observe(#selector(UITableViewDelegate.tableView(_:didUpdateFocusInContext:withAnimationCoordinator:))) .map { a -> (context: UIFocusUpdateContext, animationCoordinator: UIFocusAnimationCoordinator) in let context = a[1] as! UIFocusUpdateContext let animationCoordinator = a[2] as! UIFocusAnimationCoordinator diff --git a/Tests/RxCocoaTests/Control+RxTests+UIKit.swift b/Tests/RxCocoaTests/Control+RxTests+UIKit.swift index 498abaa4..04e586c8 100644 --- a/Tests/RxCocoaTests/Control+RxTests+UIKit.swift +++ b/Tests/RxCocoaTests/Control+RxTests+UIKit.swift @@ -545,7 +545,7 @@ extension ControlTests { // UIGestureRecognizer extension ControlTests { func testGestureRecognizer_DelegateEventCompletesOnDealloc() { - let createView: () -> UIGestureRecognizer = { UIGestureRecognizer(target: nil, action: "s") } + let createView: () -> UIGestureRecognizer = { UIGestureRecognizer(target: nil, action: NSSelectorFromString("s")) } ensureEventDeallocated(createView) { (view: UIGestureRecognizer) in view.rx_event } } } diff --git a/Tests/RxCocoaTests/DelegateProxyTest+UIKit.swift b/Tests/RxCocoaTests/DelegateProxyTest+UIKit.swift index ff2ce6ed..c2669f70 100644 --- a/Tests/RxCocoaTests/DelegateProxyTest+UIKit.swift +++ b/Tests/RxCocoaTests/DelegateProxyTest+UIKit.swift @@ -122,7 +122,7 @@ class UITableViewSubclass1 var test: Observable { return rx_delegate - .observe("testEventHappened:") + .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) .map { a in (a[0] as! NSNumber).integerValue } } } @@ -151,7 +151,7 @@ class UITableViewSubclass2 var test: Observable { return rx_dataSource - .observe("testEventHappened:") + .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) .map { a in (a[0] as! NSNumber).integerValue } } } @@ -180,7 +180,7 @@ class UICollectionViewSubclass1 var test: Observable { return rx_delegate - .observe("testEventHappened:") + .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) .map { a in (a[0] as! NSNumber).integerValue } } } @@ -209,7 +209,7 @@ class UICollectionViewSubclass2 var test: Observable { return rx_dataSource - .observe("testEventHappened:") + .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) .map { a in (a[0] as! NSNumber).integerValue } } } @@ -238,7 +238,7 @@ class UIScrollViewSubclass var test: Observable { return rx_delegate - .observe("testEventHappened:") + .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) .map { a in (a[0] as! NSNumber).integerValue } } } @@ -267,7 +267,7 @@ class UITextViewSubclass var test: Observable { return rx_delegate - .observe("testEventHappened:") + .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) .map { a in (a[0] as! NSNumber).integerValue } } } \ No newline at end of file diff --git a/Tests/RxCocoaTests/DelegateProxyTest.swift b/Tests/RxCocoaTests/DelegateProxyTest.swift index 810ad2e7..aabcdf44 100644 --- a/Tests/RxCocoaTests/DelegateProxyTest.swift +++ b/Tests/RxCocoaTests/DelegateProxyTest.swift @@ -62,7 +62,7 @@ class DelegateProxyTest : RxTest { var observedFeedRequest = false - let d = view.rx_proxy.observe("threeDView:didLearnSomething:") + let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didLearnSomething:))) .subscribeNext { n in observedFeedRequest = true } @@ -85,7 +85,7 @@ class DelegateProxyTest : RxTest { var nMessages = 0 - let d = view.rx_proxy.observe("threeDView:didLearnSomething:") + let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didLearnSomething:))) .subscribeNext { n in nMessages += 1 } @@ -117,13 +117,13 @@ class DelegateProxyTest : RxTest { view.delegate = mock - XCTAssertTrue(!mock.respondsToSelector("threeDView(threeDView:didGetXXX:")) + XCTAssertTrue(!mock.respondsToSelector(NSSelectorFromString("threeDView(threeDView:didGetXXX:"))) let sentArgument = NSIndexPath(index: 0) var receivedArgument: NSIndexPath? = nil - let d = view.rx_proxy.observe("threeDView:didGetXXX:") + let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didGetXXX:))) .subscribeNext { n in let ip = n[1] as! NSIndexPath receivedArgument = ip @@ -148,13 +148,13 @@ class DelegateProxyTest : RxTest { var completed = false autoreleasepool { - XCTAssertTrue(!mock.respondsToSelector("threeDView(threeDView:didGetXXX:")) + XCTAssertTrue(!mock.respondsToSelector(NSSelectorFromString("threeDView:threeDView:didGetXXX:"))) let sentArgument = NSIndexPath(index: 0) _ = view .rx_proxy - .observe("threeDView:didGetXXX:") + .observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didGetXXX:))) .subscribeCompleted { completed = true } @@ -171,7 +171,7 @@ class DelegateProxyTest : RxTest { extension DelegateProxyTest { func test_DelegateProxyHierarchyWorks() { let tableView = UITableView() - _ = tableView.rx_delegate.observe("scrollViewWillBeginDragging:") + _ = tableView.rx_delegate.observe(#selector(UIScrollViewDelegate.scrollViewWillBeginDragging(_:))) } } #endif diff --git a/Tests/RxCocoaTests/SentMessageTest.swift b/Tests/RxCocoaTests/SentMessageTest.swift index 45d82941..516a39d7 100644 --- a/Tests/RxCocoaTests/SentMessageTest.swift +++ b/Tests/RxCocoaTests/SentMessageTest.swift @@ -28,13 +28,13 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(), observeIt: { (target: SentMessageTestBase_dealloc) in - return [target.rx_sentMessage("dealloc")] + return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationAdded(forSelector: "dealloc"), + .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationAdded(forSelector: "dealloc"), + .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -43,13 +43,13 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(), observeIt: { (target: SentMessageTest_dealloc) in - return [target.rx_sentMessage("dealloc")] + return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationAdded(forSelector: "dealloc"), + .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationAdded(forSelector: "dealloc"), + .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -63,10 +63,10 @@ extension SentMessageTest { return [target.rx_deallocating.map { _ in [] }] }, objectActingClassChange: [ - .ImplementationAdded(forSelector: "dealloc"), + .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationAdded(forSelector: "dealloc"), + .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -78,10 +78,10 @@ extension SentMessageTest { return [target.rx_deallocating.map { _ in [] }] }, objectActingClassChange: [ - .ImplementationAdded(forSelector: "dealloc"), + .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationAdded(forSelector: "dealloc"), + .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -92,13 +92,13 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(), observeIt: { (target: SentMessageTestBase_dealloc_base) in - return [target.rx_sentMessage("dealloc")] + return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationChanged(forSelector: "dealloc"), + .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationChanged(forSelector: "dealloc"), + .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -107,13 +107,13 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(), observeIt: { (target: SentMessageTest_dealloc_base) in - return [target.rx_sentMessage("dealloc")] + return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationAdded(forSelector: "dealloc"), + .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationAdded(forSelector: "dealloc"), + .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -124,13 +124,13 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(), observeIt: { (target: SentMessageTestBase_dealloc_subclass) in - return [target.rx_sentMessage("dealloc")] + return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationAdded(forSelector: "dealloc"), + .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationAdded(forSelector: "dealloc"), + .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -139,13 +139,13 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(), observeIt: { (target: SentMessageTest_dealloc_subclass) in - return [target.rx_sentMessage("dealloc")] + return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationChanged(forSelector: "dealloc"), + .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationChanged(forSelector: "dealloc"), + .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -156,13 +156,13 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(), observeIt: { (target: SentMessageTestBase_dealloc_base_subclass) in - return [target.rx_sentMessage("dealloc")] + return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationChanged(forSelector: "dealloc"), + .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationChanged(forSelector: "dealloc"), + .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -171,13 +171,13 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(), observeIt: { (target: SentMessageTest_dealloc_base_subclass) in - return [target.rx_sentMessage("dealloc")] + return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationChanged(forSelector: "dealloc"), + .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationChanged(forSelector: "dealloc"), + .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -192,18 +192,18 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(SentMessageTest_interact_forwarding.self), observeIt: { target in - return [target.rx_sentMessage("justCalledToSayObject:")] + return [target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayObject(_:)))] }, objectActingClassChange: [ ], objectRealClassChange: [ ObjectRuntimeChange.ClassChangedToDynamic("SentMessageTest_interact_forwarding", andImplementsTheseSelectors: [ - "class", - "respondsToSelector:", - "methodSignatureForSelector:", - "forwardInvocation:", - "justCalledToSayObject:", - "_RX_namespace_justCalledToSayObject:", + NSSelectorFromString("class"), + NSSelectorFromString("respondsToSelector:"), + NSSelectorFromString("methodSignatureForSelector:"), + NSSelectorFromString("forwardInvocation:"), + #selector(SentMessageTestBase_shared.justCalledToSayObject(_:)), + NSSelectorFromString("_RX_namespace_justCalledToSayObject:"), ]) ], runtimeChange: RxObjCRuntimeChange.changes(dynamicSubclasses:1, methodsForwarded: 1, swizzledForwardClasses: 1) @@ -217,18 +217,18 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(SentMessageTestBase_interact_forwarding.self), observeIt: { target in - return [target.rx_sentMessage("justCalledToSayObject:")] + return [target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayObject(_:)))] }, objectActingClassChange: [ ], objectRealClassChange: [ ObjectRuntimeChange.ClassChangedToDynamic("SentMessageTestBase_interact_forwarding", andImplementsTheseSelectors: [ - "class", - "respondsToSelector:", - "methodSignatureForSelector:", - "forwardInvocation:", - "justCalledToSayObject:", - "_RX_namespace_justCalledToSayObject:", + NSSelectorFromString("class"), + NSSelectorFromString("respondsToSelector:"), + NSSelectorFromString("methodSignatureForSelector:"), + NSSelectorFromString("forwardInvocation:"), + #selector(SentMessageTestBase_shared.justCalledToSayObject(_:)), + NSSelectorFromString("_RX_namespace_justCalledToSayObject:"), ]) ], runtimeChange: RxObjCRuntimeChange.changes(dynamicSubclasses:1, methodsForwarded: 1, swizzledForwardClasses: 1) @@ -243,18 +243,18 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(SentMessageTest_interact_forwarding.self), observeIt: { target in - return [target.rx_sentMessage("justCalledToSayObject:")] + return [target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayObject(_:)))] }, objectActingClassChange: [ ], objectRealClassChange: [ ObjectRuntimeChange.ClassChangedToDynamic("SentMessageTest_interact_forwarding", andImplementsTheseSelectors: [ - "class", - "respondsToSelector:", - "methodSignatureForSelector:", - "forwardInvocation:", - "justCalledToSayObject:", - "_RX_namespace_justCalledToSayObject:", + NSSelectorFromString("class"), + NSSelectorFromString("respondsToSelector:"), + NSSelectorFromString("methodSignatureForSelector:"), + NSSelectorFromString("forwardInvocation:"), + #selector(SentMessageTestBase_shared.justCalledToSayObject(_:)), + NSSelectorFromString("_RX_namespace_justCalledToSayObject:"), ]) ], runtimeChange: RxObjCRuntimeChange.changes() @@ -268,18 +268,18 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(SentMessageTestBase_interact_forwarding.self), observeIt: { target in - return [target.rx_sentMessage("justCalledToSayObject:")] + return [target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayObject(_:)))] }, objectActingClassChange: [ ], objectRealClassChange: [ ObjectRuntimeChange.ClassChangedToDynamic("SentMessageTestBase_interact_forwarding", andImplementsTheseSelectors: [ - "class", - "respondsToSelector:", - "methodSignatureForSelector:", - "forwardInvocation:", - "justCalledToSayObject:", - "_RX_namespace_justCalledToSayObject:", + NSSelectorFromString("class"), + NSSelectorFromString("respondsToSelector:"), + NSSelectorFromString("methodSignatureForSelector:"), + NSSelectorFromString("forwardInvocation:"), + #selector(SentMessageTestBase_shared.justCalledToSayObject(_:)), + NSSelectorFromString("_RX_namespace_justCalledToSayObject:"), ]) ], runtimeChange: RxObjCRuntimeChange.changes() @@ -300,7 +300,7 @@ extension SentMessageTest { _baseClass_subClass_dont_interact_for_optimized_version( SentMessageTestBase_optimized_void.self, SentMessageTest_optimized_void.self, - "voidJustCalledToSayVoid") { target in + #selector(SentMessageTestBase_shared.voidJustCalledToSayVoid)) { target in target.voidJustCalledToSayVoid() return [[[]]] } @@ -310,7 +310,7 @@ extension SentMessageTest { _baseClass_subClass_dont_interact_for_optimized_version( SentMessageTestBase_optimized_id.self, SentMessageTest_optimized_id.self, - "voidJustCalledToSayObject:") { target in + #selector(SentMessageTestBase_shared.voidJustCalledToSayObject(_:))) { target in let o = NSObject() target.voidJustCalledToSayObject(o) return [[[o]]] @@ -321,7 +321,7 @@ extension SentMessageTest { _baseClass_subClass_dont_interact_for_optimized_version( SentMessageTestBase_optimized_int.self, SentMessageTest_optimized_int.self, - "voidJustCalledToSayInt:") { target in + #selector(SentMessageTestBase_shared.voidJustCalledToSayInt(_:))) { target in target.voidJustCalledToSayInt(3) return [[[NSNumber(integer: 3)]]] } @@ -331,7 +331,7 @@ extension SentMessageTest { _baseClass_subClass_dont_interact_for_optimized_version( SentMessageTestBase_optimized_long.self, SentMessageTest_optimized_long.self, - "voidJustCalledToSayLong:") { target in + #selector(SentMessageTestBase_shared.voidJustCalledToSayLong(_:))) { target in target.voidJustCalledToSayLong(3) return [[[NSNumber(long: 3)]]] } @@ -341,7 +341,7 @@ extension SentMessageTest { _baseClass_subClass_dont_interact_for_optimized_version( SentMessageTestBase_optimized_char.self, SentMessageTest_optimized_char.self, - "voidJustCalledToSayChar:") { target in + #selector(SentMessageTestBase_shared.voidJustCalledToSayChar(_:))) { target in target.voidJustCalledToSayChar(3) return [[[NSNumber(char: 3)]]] } @@ -351,7 +351,7 @@ extension SentMessageTest { _baseClass_subClass_dont_interact_for_optimized_version( SentMessageTestBase_optimized_id_id.self, SentMessageTest_optimized_id_id.self, - "voidJustCalledToSayObject:object:") { target in + #selector(SentMessageTestBase_shared.voidJustCalledToSayObject(_:object:))) { target in let o = NSObject() let o1 = NSObject() target.voidJustCalledToSayObject(o, object: o1) @@ -373,7 +373,7 @@ extension SentMessageTest { objectActingClassChange: [ ], objectRealClassChange: [ - ObjectRuntimeChange.ClassChangedToDynamic("\(targetClass)", andImplementsTheseSelectors: [method, "class"]) + ObjectRuntimeChange.ClassChangedToDynamic("\(targetClass)", andImplementsTheseSelectors: [method, NSSelectorFromString("class")]) ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, dynamicSubclasses: 1)) { (target: TargetClass) in return invoke(target as! BaseClass) @@ -389,7 +389,7 @@ extension SentMessageTest { ], objectRealClassChange: [ - ObjectRuntimeChange.ClassChangedToDynamic("\(baseClass)", andImplementsTheseSelectors: [method, "class"]) + ObjectRuntimeChange.ClassChangedToDynamic("\(baseClass)", andImplementsTheseSelectors: [method, NSSelectorFromString("class")]) ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, dynamicSubclasses: 1), useIt: invoke) @@ -403,7 +403,7 @@ extension SentMessageTest { objectActingClassChange: [ ], objectRealClassChange: [ - ObjectRuntimeChange.ClassChangedToDynamic("\(targetClass)", andImplementsTheseSelectors: [method, "class"]) + ObjectRuntimeChange.ClassChangedToDynamic("\(targetClass)", andImplementsTheseSelectors: [method, NSSelectorFromString("class")]) ], runtimeChange: RxObjCRuntimeChange.changes()) { (target: TargetClass) in return invoke(target as! BaseClass) @@ -418,7 +418,7 @@ extension SentMessageTest { objectActingClassChange: [ ], objectRealClassChange: [ - ObjectRuntimeChange.ClassChangedToDynamic("\(baseClass)", andImplementsTheseSelectors: [method, "class"]) + ObjectRuntimeChange.ClassChangedToDynamic("\(baseClass)", andImplementsTheseSelectors: [method, NSSelectorFromString("class")]) ], runtimeChange: RxObjCRuntimeChange.changes(), useIt: invoke) @@ -434,7 +434,7 @@ extension SentMessageTest { _baseClass_subClass_dont_interact_for_optimized_version( SentMessageTestBase_optimized_int_base.self, SentMessageTest_optimized_int_base.self, - "optimized:") { target in + #selector(SentMessageTestBase_optimized_int_base.optimized(_:))) { target in target.optimized(argument) return [[[argument]]] } @@ -448,7 +448,7 @@ extension SentMessageTest { let target = SentMessageTest_forwarding_basic() var messages = [[AnyObject]]() - let d = target.rx_sentMessage("message_allSupportedParameters:p2:p3:p4:p5:p6:p7:p8:p9:p10:p11:p12:p13:p14:p15:p16:").subscribe(onNext: { n in + let d = target.rx_sentMessage(#selector(SentMessageTestBase_shared.message_allSupportedParameters(_:p2:p3:p4:p5:p6:p7:p8:p9:p10:p11:p12:p13:p14:p15:p16:))).subscribe(onNext: { n in messages.append(n) }, onError: { e in XCTFail("Errors out \(e)") @@ -476,7 +476,7 @@ extension SentMessageTest { let target = SentMessageTest_shared() do { - _ = try target.rx_sentMessage("unknownSelector:") + _ = try target.rx_sentMessage(NSSelectorFromString("unknownSelector:")) .toBlocking() .first() @@ -502,7 +502,7 @@ extension SentMessageTest { .addDisposableTo(disposeBag) do { - _ = try target.rx_sentMessage("justCalledToSayBool:") + _ = try target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayBool(_:))) .toBlocking() .first() @@ -525,7 +525,7 @@ extension SentMessageTest { object_setClass(target, SentMessageTest_shared_mock_interceptor.self) do { - _ = try target.rx_sentMessage("justCalledToSayBool:") + _ = try target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayBool(_:))) .toBlocking() .first() @@ -547,7 +547,7 @@ extension SentMessageTest { let target = "\(NSDate())" do { - _ = try target.rx_sentMessage("length") + _ = try target.rx_sentMessage(#selector(_NSStringCoreType.length)) .toBlocking() .first() @@ -572,7 +572,7 @@ extension SentMessageTest { func testWorksWithKVOInCaseKVORegisteredAfter() { let target = SentMessageTest_shared() - let messages = target.rx_sentMessage("justCalledToSayBool:") + let messages = target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayBool(_:))) let kvo = target.rx_observe(NSArray.self, "messages") .subscribeNext { _ in @@ -607,7 +607,7 @@ extension SentMessageTest { autoreleasepool { let target = SentMessageTest_shared() - messages = target.rx_sentMessage("justCalledToSayBool:") + messages = target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayBool(_:))) target.justCalledToSayBool(true) @@ -630,7 +630,7 @@ extension SentMessageTest { autoreleasepool { let target = SentMessageTest_shared() - deallocSequence = target.rx_sentMessage("dealloc") + deallocSequence = target.rx_sentMessage(NSSelectorFromString("dealloc")) } var called = false @@ -673,7 +673,7 @@ extension SentMessageTest { let target = SentMessageTest_shared() do { - _ = try target.rx_sentMessage("class") + _ = try target.rx_sentMessage(NSSelectorFromString("class")) .toBlocking() .first() @@ -693,7 +693,7 @@ extension SentMessageTest { let target = SentMessageTest_shared() do { - _ = try target.rx_sentMessage("forwardingTargetForSelector:") + _ = try target.rx_sentMessage(NSSelectorFromString("forwardingTargetForSelector:")) .toBlocking() .first() @@ -713,7 +713,7 @@ extension SentMessageTest { let target = SentMessageTest_shared() do { - _ = try target.rx_sentMessage("methodSignatureForSelector:") + _ = try target.rx_sentMessage(NSSelectorFromString("methodSignatureForSelector:")) .toBlocking() .first() @@ -733,7 +733,7 @@ extension SentMessageTest { let target = SentMessageTest_shared() do { - _ = try target.rx_sentMessage("respondsToSelector:") + _ = try target.rx_sentMessage(NSSelectorFromString("respondsToSelector:")) .toBlocking() .first() @@ -757,7 +757,7 @@ extension SentMessageTest { let target = SentMessageTest_shared() do { - _ = try target.rx_sentMessage("hugeResult") + _ = try target.rx_sentMessage(#selector(SentMessageTestBase_shared.hugeResult)) .toBlocking() .first() @@ -788,42 +788,42 @@ extension SentMessageTest { let startRuntimeState = RxObjCRuntimeState() - _testMessageRecordedAndAllCallsAreMade("justCalledToSayObject:", sendMessage: { x in NSValue(nonretainedObject: x.justCalledToSayObject(object)) }, expectedResult: NSValue(nonretainedObject: object)) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayClass:", sendMessage: { x in NSValue(nonretainedObject: x.justCalledToSayClass(object.dynamicType)) }, expectedResult: NSValue(nonretainedObject: object.dynamicType)) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayClosure:", sendMessage: { x in "\(x.justCalledToSayClosure(closure))" }, expectedResult: "\(closure)") - _testMessageRecordedAndAllCallsAreMade("justCalledToSayChar:", sendMessage: { x in x.justCalledToSayChar(3) }, expectedResult: 3) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayShort:", sendMessage: { x in x.justCalledToSayShort(4) }, expectedResult: 4) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayInt:", sendMessage: { x in x.justCalledToSayInt(5) }, expectedResult: 5) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayLong:", sendMessage: { x in x.justCalledToSayLong(6) }, expectedResult: 6) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayLongLong:", sendMessage: { x in x.justCalledToSayLongLong(7) }, expectedResult: 7) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayUnsignedChar:", sendMessage: { x in x.justCalledToSayUnsignedChar(8) }, expectedResult: 8) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayUnsignedShort:", sendMessage: { x in x.justCalledToSayUnsignedShort(9) }, expectedResult: 9) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayUnsignedInt:", sendMessage: { x in x.justCalledToSayUnsignedInt(10) }, expectedResult: 10) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayUnsignedLong:", sendMessage: { x in x.justCalledToSayUnsignedLong(11) }, expectedResult: 11) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayUnsignedLongLong:", sendMessage: { x in x.justCalledToSayUnsignedLongLong(12) }, expectedResult: 12) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayFloat:", sendMessage: { x in x.justCalledToSayFloat(13) }, expectedResult: 13) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayDouble:", sendMessage: { x in x.justCalledToSayDouble(13) }, expectedResult: 13) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayBool:", sendMessage: { x in x.justCalledToSayBool(true) }, expectedResult: true) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayConstChar:", sendMessage: { x in x.justCalledToSayConstChar(constChar) }, expectedResult: constChar) - _testMessageRecordedAndAllCallsAreMade("justCalledToSayLarge:", sendMessage: { x in x.justCalledToSayLarge(largeStruct) }, expectedResult: 28) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayObject(_:)), sendMessage: { x in NSValue(nonretainedObject: x.justCalledToSayObject(object)) }, expectedResult: NSValue(nonretainedObject: object)) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayClass(_:)), sendMessage: { x in NSValue(nonretainedObject: x.justCalledToSayClass(object.dynamicType)) }, expectedResult: NSValue(nonretainedObject: object.dynamicType)) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayClosure(_:)), sendMessage: { x in "\(x.justCalledToSayClosure(closure))" }, expectedResult: "\(closure)") + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayChar(_:)), sendMessage: { x in x.justCalledToSayChar(3) }, expectedResult: 3) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayShort(_:)), sendMessage: { x in x.justCalledToSayShort(4) }, expectedResult: 4) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayInt(_:)), sendMessage: { x in x.justCalledToSayInt(5) }, expectedResult: 5) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayLong(_:)), sendMessage: { x in x.justCalledToSayLong(6) }, expectedResult: 6) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayLongLong(_:)), sendMessage: { x in x.justCalledToSayLongLong(7) }, expectedResult: 7) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayUnsignedChar(_:)), sendMessage: { x in x.justCalledToSayUnsignedChar(8) }, expectedResult: 8) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayUnsignedShort(_:)), sendMessage: { x in x.justCalledToSayUnsignedShort(9) }, expectedResult: 9) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayUnsignedInt(_:)), sendMessage: { x in x.justCalledToSayUnsignedInt(10) }, expectedResult: 10) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayUnsignedLong(_:)), sendMessage: { x in x.justCalledToSayUnsignedLong(11) }, expectedResult: 11) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayUnsignedLongLong(_:)), sendMessage: { x in x.justCalledToSayUnsignedLongLong(12) }, expectedResult: 12) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayFloat(_:)), sendMessage: { x in x.justCalledToSayFloat(13) }, expectedResult: 13) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayDouble(_:)), sendMessage: { x in x.justCalledToSayDouble(13) }, expectedResult: 13) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayBool(_:)), sendMessage: { x in x.justCalledToSayBool(true) }, expectedResult: true) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayConstChar(_:)), sendMessage: { x in x.justCalledToSayConstChar(constChar) }, expectedResult: constChar) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayLarge(_:)), sendMessage: { x in x.justCalledToSayLarge(largeStruct) }, expectedResult: 28) let middleRuntimeState = RxObjCRuntimeState() let middleChanges = RxObjCRuntimeChange.changes(methodsForwarded: 18, dynamicSubclasses: 1, swizzledForwardClasses: 1) middleRuntimeState.assertAfterThisMoment(startRuntimeState, changed:middleChanges) - _testMessageRecordedAndAllCallsAreMade("voidJustCalledToSayObject:", sendMessage: { x in x.voidJustCalledToSayObject(object); return NSValue(nonretainedObject: object) }, expectedResult: NSValue(nonretainedObject: object)) - _testMessageRecordedAndAllCallsAreMade("voidJustCalledToSayClosure:", sendMessage: { x in x.voidJustCalledToSayClosure(closure); return "\(closure)" }, expectedResult: "\(closure)") - _testMessageRecordedAndAllCallsAreMade("voidJustCalledToSayChar:", sendMessage: { x in x.voidJustCalledToSayChar(3); return 3 }, expectedResult: 3) - _testMessageRecordedAndAllCallsAreMade("voidJustCalledToSayShort:", sendMessage: { x in x.voidJustCalledToSayShort(4); return 4 }, expectedResult: 4) - _testMessageRecordedAndAllCallsAreMade("voidJustCalledToSayInt:", sendMessage: { x in x.voidJustCalledToSayInt(5); return 5 }, expectedResult: 5) - _testMessageRecordedAndAllCallsAreMade("voidJustCalledToSayLong:", sendMessage: { x in x.voidJustCalledToSayLong(6); return 6 }, expectedResult: 6) - _testMessageRecordedAndAllCallsAreMade("voidJustCalledToSayUnsignedChar:", sendMessage: { x in x.voidJustCalledToSayUnsignedChar(8); return 8 }, expectedResult: 8) - _testMessageRecordedAndAllCallsAreMade("voidJustCalledToSayUnsignedShort:", sendMessage: { x in x.voidJustCalledToSayUnsignedShort(9); return 9 }, expectedResult: 9) - _testMessageRecordedAndAllCallsAreMade("voidJustCalledToSayUnsignedInt:", sendMessage: { x in x.voidJustCalledToSayUnsignedInt(10); return 10 }, expectedResult: 10) - _testMessageRecordedAndAllCallsAreMade("voidJustCalledToSayUnsignedLong:", sendMessage: { x in x.voidJustCalledToSayUnsignedLong(11); return 11 }, expectedResult: 11) - _testMessageRecordedAndAllCallsAreMade("voidJustCalledToSayFloat:", sendMessage: { x in x.voidJustCalledToSayFloat(13); return 13 }, expectedResult: 13) - _testMessageRecordedAndAllCallsAreMade("voidJustCalledToSayDouble:", sendMessage: { x in x.voidJustCalledToSayDouble(13); return 13 }, expectedResult: 13) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayObject(_:)), sendMessage: { x in x.voidJustCalledToSayObject(object); return NSValue(nonretainedObject: object) }, expectedResult: NSValue(nonretainedObject: object)) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayClosure(_:)), sendMessage: { x in x.voidJustCalledToSayClosure(closure); return "\(closure)" }, expectedResult: "\(closure)") + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayChar(_:)), sendMessage: { x in x.voidJustCalledToSayChar(3); return 3 }, expectedResult: 3) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayShort(_:)), sendMessage: { x in x.voidJustCalledToSayShort(4); return 4 }, expectedResult: 4) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayInt(_:)), sendMessage: { x in x.voidJustCalledToSayInt(5); return 5 }, expectedResult: 5) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayLong(_:)), sendMessage: { x in x.voidJustCalledToSayLong(6); return 6 }, expectedResult: 6) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayUnsignedChar(_:)), sendMessage: { x in x.voidJustCalledToSayUnsignedChar(8); return 8 }, expectedResult: 8) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayUnsignedShort(_:)), sendMessage: { x in x.voidJustCalledToSayUnsignedShort(9); return 9 }, expectedResult: 9) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayUnsignedInt(_:)), sendMessage: { x in x.voidJustCalledToSayUnsignedInt(10); return 10 }, expectedResult: 10) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayUnsignedLong(_:)), sendMessage: { x in x.voidJustCalledToSayUnsignedLong(11); return 11 }, expectedResult: 11) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayFloat(_:)), sendMessage: { x in x.voidJustCalledToSayFloat(13); return 13 }, expectedResult: 13) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayDouble(_:)), sendMessage: { x in x.voidJustCalledToSayDouble(13); return 13 }, expectedResult: 13) let endRuntimeState = RxObjCRuntimeState() diff --git a/scripts/common.sh b/scripts/common.sh index e951a1e7..7019f31b 100755 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -24,7 +24,7 @@ BOLDWHITE="\033[1m\033[37m" DEFAULT_IOS7_SIMULATOR=RxSwiftTest/iPhone-4s/iOS/7.1 DEFAULT_IOS8_SIMULATOR=RxSwiftTest/iPhone-6/iOS/8.4 DEFAULT_IOS9_SIMULATOR=RxSwiftTest/iPhone-6/iOS/9.3 -DEFAULT_WATCHOS2_SIMULATOR=RxSwiftTest/Apple-Watch-38mm/watchOS/2.1 +DEFAULT_WATCHOS2_SIMULATOR=RxSwiftTest/Apple-Watch-38mm/watchOS/2.2 DEFAULT_TVOS_SIMULATOR=RxSwiftTest/Apple-TV-1080p/tvOS/9.1 function runtime_available() {