Swift:如何使用库:Alamofire-SwiftyJSON

时间:2015-02-03 11:50:11

标签: swift alamofire swifty-json

我在尝试使用此库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)
               }

谢谢

4 个答案:

答案 0 :(得分:4)

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

  • 将Alamo.Swift拖到项目导航中(确保在需要时复制文件)
  • 删除' Usage' Alamofire.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

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

我希望这会有所帮助。祝你好运,保持联系。

答案 1 :(得分:2)

首先关注指向Alamofire-SwiftyJSON项目的链接。下载整个项目的zip。 也可以点击Alamofire项目的链接,下载fullzip,同样的东西再次为swiftyJSON项目。

现在,您需要做的就是:

  1. 添加您在以前下载的Alamofire-SwiftyJSON zip的'source'文件夹中找到的文件Alamofire-SwiftyJSON.swift,并将其添加到您的项目中。保留“如果需要时复制”复选框,按原样保留目标。
  2. 在Xcode上,通过文件添加文件> '将文件添加到“MyProject”并从您下载的Alamofire zip中选择文件'Alamofire.xcodeproj'。以下是选项:
  3. Options for the adding of the alamo project

    如果需要,您可以检查“如果需要,复制文件”。如果不这样做,请务必保留alamofire项目的文件夹。 3.对swiftyJSON项目执行完全相同的操作。通过添加'SwiftyJSON.xcodeproj'文件。 4.转到项目设置>构建阶段>链接二进制文件库 5.添加Alamofire和SwiftyJSON框架(根据你是开发iphone还是mac os x选择合适的框架):

    Add Alamofire and SwiftyJSON frameworks

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

      导入Alamofire

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

      Alamofire.request(.GET,“http://httpbin.org/get”,参数:[“foo”:“bar”])             .responseSwiftyJSON {(请求,响应,json,错误)in                 的println(JSON)                 的println(错误)         }

    3. 玩得开心!

答案 2 :(得分:0)

您现在也可以使用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)
                  })

答案 3 :(得分:0)

我最后通过阅读Cocoapods.org入门段落:

来解决

enter image description here

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

2)从终端,在项目文件夹中输入:

open YourApp.xcworkspace

现在一切都会奏效:)