【问题标题】:Integrate Alamofire 2 Manually without using Framework不使用框架手动集成 Alamofire 2
【发布时间】: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”在哪里?
  • 但之前也有同样的效果

标签: ios swift swift2 alamofire


【解决方案1】:

您必须从 Alamofire 存储库下载所有 .swift 文件。在 Alamofire 1 和 2 之间,发生了很多变化。例如 RequestresponseJSON 块返回三个东西,NSURLRequest?, NSHTTPURLResponse?,Result<AnyObject> 结构,其 json 数据为 json.valuejson.errorErrorType

以下代码示例展示了如何在 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!)

【讨论】:

猜你喜欢
  • 2019-07-22
  • 1970-01-01
  • 2017-08-16
  • 1970-01-01
  • 2020-06-23
  • 1970-01-01
  • 2018-04-15
  • 1970-01-01
  • 2018-11-23
相关资源
最近更新 更多