Swift:如何使用库:Alamofire-SwiftyJSON

Swift: How to use library: Alamofire-SwiftyJSON

我在尝试让这个库 Alamofire-SwiftyJSON (https://github.com/SwiftyJSON/Alamofire-SwiftyJSON) 工作时遇到问题。

我创建了一个新项目并下载了 Alamofire-SwiftyJSON 库并将所有内容拖到我的项目导航区域中。

然而,当我进入 ViewController 并添加:

import AlamofireSwiftyJSON

我收到错误:没有这样的模块导入 AlamofireSwiftyJSON

谁能告诉我如何手动添加这个项目。理想情况下一步一步,这样我就可以让这段代码工作:

 Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"])
     .responseSwiftyJSON { (request, response, json, error) in
                 println(json)
                 println(error)
               }

谢谢

首先跟随你的link来到Alamofire-SwiftyJSON项目。在那里下载完整项目的 zip。 同样按照 Alamofire 项目的 link 并下载完整的 zip,对于 swiftyJSON 项目也是如此。

现在您需要做的是:

  1. 添加 Alamofire-SwiftyJSON.swift 文件,您可以在之前下载的 Alamofire-SwiftyJSON zip 的 'source' 文件夹中找到该文件,并将其添加到您的项目中。保留 'copy if needed' 和目标的复选框。
  2. 在 Xcode 上,通过文件添加文件 > '将文件添加到 "MyProject" 和 select 您下载的 Alamofire zip 文件 'Alamofire.xcodeproj'。以下是选项:

如果需要,您可以检查'copy files if needed'。如果不这样做,请务必保留 alamofire 项目的文件夹。 3. 对 swiftyJSON 项目执行完全相同的操作。通过添加 'SwiftyJSON.xcodeproj' 文件。 4. 转到您的项目设置 > 构建阶段 > Link Binary With Libraries 5. 添加 Alamofire 和 SwiftyJSON 框架(选择ose 正确的框架取决于你是为 iphone 还是 mac os x 开发)像这样:

  1. 转到您需要发出请求的程序的任何部分(例如 ViewController 或 AppDelegate)并在初始导入语句下方添加以下代码

    导入 Alamofire

  2. 使用以下代码添加您的请求:

    Alamofire.request(.GET, "http://httpbin.org/get", 参数: ["foo": "bar"]) .responseSwiftyJSON {(请求,响应,json,错误)在 println(json) 打印(错误) }

  3. 编码愉快!

您的部署目标是什么?是 < 8.0 吗?如果是这样,那些不支持嵌入式框架的目标,因此您需要做的就是:

  • 将Alamo.Swift拖到您的项目导航中(确保在需要时复制文件)
  • 删除 'Usage' Alamofire.request 的实例将变为 request

所以您的代码将是:

request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"])
 .responseSwiftyJSON { (request, response, json, error) in
             println(json)
             println(error)
           }

现在,这就是那个框架。由于我现在有一些时间,我将向您展示如何使它全部工作并稍微整理一下。

完成上述操作后,执行以下操作:

  • 拖动SwiftyJSON.swift到您的项目导航区

再次...确保在需要时复制文件。框架也是如此。

稍微整理一下的权利 - 您不必这样做,但在可能的情况下使用变量和数组总是更好,这样可以使代码更简洁并加快编码时间。对于上面的示例,请执行以下操作:

var url = "http://httpbin.org/get"
var arr_parameters = [
    "foo": "bar"
]

request(.GET, url, parameters: arr_parameters)

结合一些错误测试也是一个好主意,这样您就可以更轻松地调试并提供回退等...

所以,考虑到这一点,您的整个代码应该如下所示:

var url = "http://httpbin.org/get"
var arr_parameters = [
    "foo": "bar"
]

request(.GET, url, parameters: arr_parameters)
   .responseJSON { (req, res, json, error) in
            if(error != nil) {
                NSLog("Error: \(error)")
                println(req)
                println(res)
            }
            else {
                NSLog("Success: \(url)")
                var json = JSON(json!)
            }
    }

SwiftMonthly

中有一篇非常好的文章介绍了这一点

希望对您有所帮助。祝你好运,保持联系。

你现在也可以使用Cocoapods了。 Pod 分别安装 Alamofire 和 SwiftyJSON,然后将 AlamofireSwiftyJSON.swift 放入您的 xcode 项目文件夹中。

然后在视图控制器或任何您想使用的视图控制器中,在文件顶部导入 Alamofire 和 SwiftyJSON。

那么下面的代码片段应该可以正常编译。

Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"])
         .responseSwiftyJSON({ (request, response, json, error) in
                     println(json)
                     println(error)
                  })

我最终通过阅读 Cocoapods.org 入门段落解决了问题:

1) 关闭 xCode 应用程序(重要!)

2) 从终端,​​在您的项目文件夹中键入:

open YourApp.xcworkspace

现在一切正常:)