2016-10-04 8 views
0

В Swift 2.3 [XCTest performTest:] был переведен на Свифта, как public func performTest(run: XCTestRun)Swift 3,0 XCTest.performTest (_ :) #selector

В Swift 3.0 он стал open func perform(_ run: XCTestRun)

С этим изменением я застрял пытается получить метод (даже после предложений https://bugs.swift.org/browse/SR-1016 и https://bugs.swift.org/browse/SR-1033).

#selector(XCTest.perform(_:)) -> matches NSObject's performSelector 
#selector(XCTest.perform as (XCTestRun) -> Void) -> ambiguous reference to member 'perform' 
#selector(XCTest.perform(_:) as (XCTestRun) -> Void) -> cannot convert value of type '(Selector!) -> Unmanaged<AnyObject>!' to type '(XCTestRun) -> Void' in coercion 

Как правильно выбрать селектор performTest?

ответ

1

Увы, тип XCTest.perform(_:) является кэрри, поэтому один будет нужно безобразное:

#selector(XCTest.perform(_:) as (XCTest) -> (XCTestRun) -> Void)