不使用框架手动集成 Alamofire 2
Posted
技术标签:
【中文标题】不使用框架手动集成 Alamofire 2【英文标题】:Integrate Alamofire 2 Manually without using Framework 【发布时间】:2015-09-19 14:20:29 【问题描述】:我最近升级到了 Swift 2 和 XCode 7。
我只是通过在我的项目中复制Alamofire.swift
来使用Alamofire。
但现在我想使用 Alamofire 2,我下载并获得了最新的 Alamofire.swift
。
我在 Alamofire.swift 中遇到很多错误,例如:
使用未声明的类型“请求”
另外,Method
是 HttpMethods 的枚举,但现在它的 typeAlias 为 COpaquePointer
我知道这可以通过 CocoaPods 完成,但我不想使用框架。 现在最好的集成方式是什么?
P.S.:我想支持 ios 8+
【问题讨论】:
你需要返回一个 NSMutableURLRequest @longbow 我认为不建议更改他们的源代码。而且也很少有其他错误。这是实现我想要做的最好的方式吗? 你不能只包含 Alamofire.swift 文件,你仍然需要整个包。如果方法在 Request.swift 中,Alamofire.swift 应该如何知道“Request”在哪里? 但之前也有同样的效果 【参考方案1】:您必须从 Alamofire 存储库下载所有 .swift 文件。在 Alamofire 1 和 2 之间,发生了很多变化。例如 Request
和 responseJSON
块返回三个东西,NSURLRequest?, NSHTTPURLResponse?,Result<AnyObject>
结构,其 json 数据为 json.value
和 json.error
为 ErrorType
以下代码示例展示了如何在 Xcode 7 和 Swift 2 中使用它
var defaultCfg: NSURLSessionConfiguration
let cfg = NSURLSessionConfiguration.defaultSessionConfiguration()
cfg.HTTPCookieStorage = NSHTTPCookieStorage.sharedHTTPCookieStorage()
cfg.HTTPCookieAcceptPolicy = NSHTTPCookieAcceptPolicy.Always
cfg.URLCache = nil
cfg.HTTPAdditionalHeaders = ["User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:40.0) Gecko/20100101 Firefox/40.0", "Accept-Language":"en-US,en;q=0.5"]
return cfg
self.mngr = Manager(configuration: cfg)
self.mngr.request(.GET, url,parameters:parameters)
.responseJSON (req, res, json) in
if(json.error != nil)
// NSLog("Error: \(error)")
failure(res, json.value, someerroryouset)
return
else
let jsond = JSON(json.value!)
【讨论】:
有关 Alamofire 2.0 中的更改的更多信息github.com/Alamofire/Alamofire/blob/master/Documentation/…以上是关于不使用框架手动集成 Alamofire 2的主要内容,如果未能解决你的问题,请参考以下文章