【发布时间】:2016-03-25 21:45:45
【问题描述】:
我想用DVR Session 初始化Alamofire Manager,以便记录和回放网络请求以进行测试。当Manager's initializer 访问Session 的委托时,它会抛出unrecognized selector 异常。如果有人同时使用Alamofire和DVR,可以分享一下你的初始化代码吗?
这是我所拥有的:
let api: OurAPI
let maybeSession = dvrCassetteName.flatMap{ cassetteName -> Session? in
let delegate = Manager.SessionDelegate()
let backingSession = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration(), delegate: delegate, delegateQueue: nil)
let maybeBundle = NSBundle.allBundles().filter{ $0.bundlePath.lowercaseString.containsString("xctest") }.first
if let bundle = maybeBundle {
let session = Session(outputDirectory: "~/Desktop/DVR/", cassetteName: cassetteName, testBundle: bundle, backingSession: backingSession)
return session
} else {
return nil
}
}
if let session = maybeSession, manager = Alamofire.Manager(session: session, delegate: Manager.SessionDelegate()) {
api = OurAPI(manager: manager)
} else {
api = OurAPI()
}
Here's the PR 在 Alamofire 上介绍了我正在使用的初始化程序,在讨论中他们讨论了我的用例,但没有提到 unrecognized selector。我也尝试过分叉DVR 并覆盖delegate 以指向backingSession.delegate,但仍然出现异常。
【问题讨论】:
标签: ios swift alamofire nsurlsession