swift – Alamofire 3.0 ReactiveCocoa转换

swift – Alamofire 3.0 ReactiveCocoa转换,第1张

概述我在Reactive Cocoa中将旧的Alamofire 2.0转换为3.0时遇到了很多麻烦.我在sendNext和sendCompleted调用中不断收到未知标识符错误. public final class Network: Networking {private let queue = dispatch_queue_create( "Beet.BeetModel.Network.Queu 我在Reactive @L_404_0@中将旧的Alamofire 2.0转换为3.0时遇到了很多麻烦.我在sendNext和sendCompleted调用中不断收到未知标识符错误.
public final class Network: Networking {private let queue = dispatch_queue_create( "Beet.BeetModel.Network.Queue",disPATCH_QUEUE_SERIAL)public init() { }public func requestJsON(url: String,parameters: [String : AnyObject]?)    -> SignalProducer<AnyObject,NetworkError>{    return SignalProducer { observer,disposable in        let serializer = Alamofire.Request.JsONResponseSerializer()        Alamofire.request(.GET,url,parameters: parameters)            .response(queue: self.queue,responseSerializer: serializer) {                _,_,result in                switch result {                case .Success(let value):                    sendNext(observer,value)                    sendCompleted(observer)                case .Failure(_,let error):                    sendError(observer,NetworkError(error: error))                }        }    }}}
这个语法 changed in 4.0 alpha 2. Observer现在是它自己的类型,所以旧函数sendNext,sendError等不再是自由函数:
switch result {case .Success(let value):    observer.sendNext(value)    observer.sendCompleted()case .Failure(_,let error):    observer.sendError(NetworkError(error: error))}

我要为您的解决方案添加的一件事是提供一次性使用,以便在需要时可以取消请求,以节省资源:

return SignalProducer { observer,disposable in    let serializer = Alamofire.Request.JsONResponseSerializer()     let request = Alamofire.request(.GET,parameters: parameters)    request.response(queue: self.queue,responseSerializer: serializer) { _,result in        switch result {        case .Success(let value):            observer.sendNext(value)            observer.sendCompleted()        case .Failure(_,let error):            observer.sendError(NetworkError(error: error))        }    }    disposable.adddisposable(request.cancel)}
总结

以上是内存溢出为你收集整理的swift – Alamofire 3.0 ReactiveCocoa转换全部内容,希望文章能够帮你解决swift – Alamofire 3.0 ReactiveCocoa转换所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1032202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存