我有一个NetworkRequest类,我的所有alamofire请求都在这里:
class NetworkRequest {
static let request = NetworkRequest()
var currentRequest: Alamofire.Request?
let dataManager = DataManager()
let networkManager = NetworkReachabilityManager()
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
func downloadData<T: Film>(slug: String, provider: String, section: String, dynamic: String, anyClass: T, completion: ([T]?) -> Void ) {
var token: String = ""
if LOGGED_IN == true {
token = "\(NSUserDefaults.standardUserDefaults().valueForKey(TOKEN)!)"
}
let headers = [
"Access": "application/json",
"Authorization": "Bearer \(token)"
]
let dataUrl = "\(BASE_URL)\(slug)\(provider)\(section)\(dynamic)"
print(headers)
print(dataUrl)
if networkManager!.isReachable {
currentRequest?.cancel()
dispatch_async(dispatch_get_global_queue(priority, 0)) {
if …Run Code Online (Sandbox Code Playgroud) 我正在开发一个基于AVPlayer的自定义视频播放器项目.试图整合谷歌演员.我已经基于google tuts进行了集成:https://codelabs.developers.google.com/codelabs/cast-videos-ios/ 但转换为swift.一切似乎工作正常,如果投射,如果视频播放器打开,并且有连接的设备(或如果我从面板连接),我形成文件的元信息,并传递给谷歌演员 - 一切正常.
但是,我有一些奇怪的行为:1)开始投射,打开视频,然后是另一个视频,然后是第三个视频.2)停止投射3)转到另一个视频,启用投射,但它不会启动此视频.它开始播放我之前打开的第一个视频....
我试图找到任何清除缓存或队列的方法,但没有..请帮助
class VideoVC: UIViewController, UIGestureRecognizerDelegate, GCKSessionManagerListener {
var filmTitle: String!
var toPass: String!
var film: MovieDetails!
var filmDetails: Movie!
var sessionManager: GCKSessionManager?
var castSession: GCKCastSession?
var castMediaController: GCKUIMediaController?
var checkPlayed = 0
override func viewDidLoad() {
super.viewDidLoad()
sessionManager = GCKCastContext.sharedInstance().sessionManager
sessionManager?.add(self)
castMediaController = GCKUIMediaController()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if let videoURL = toPass {
if let video = URL(string: videoURL) {
player = AVPlayer(url: video)
player.allowsExternalPlayback = true …Run Code Online (Sandbox Code Playgroud) 我使用此代码取消所有Alamofire请求:
func stopAllSessions() {
Alamofire.Manager.sharedInstance.session.getAllTasksWithCompletionHandler { tasks in
tasks.forEach { $0.cancel() }
}
}
Run Code Online (Sandbox Code Playgroud)
SWIFT 3迁移后,这是行不通的,我无法找到getAllTasksWithCompletionHandler的方法SessionManager的Alamofire4.