3

我在尝试让这个库 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

4 回答 4

4

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

  • 将 Alamo.Swift 拖到您的项目导航中(如果需要,请确保复制文件)
  • 删除“使用” 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上有一篇非常好的文章涵盖了这一点

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

于 2015-02-03T14:48:06.880 回答
2

首先点击链接到 Alamofire-SwiftyJSON 项目。在那里下载完整项目的 zip。也可以点击 Alamofire 项目的链接并下载 fullzip,同样的事情同样适用于 swiftyJSON 项目。

现在这是您需要做的:

  1. 添加您可以在之前下载的 Alamofire-SwiftyJSON zip 的“源”文件夹中找到的文件 Alamofire-SwiftyJSON.swift,并将其添加到您的项目中。保留“如果需要则复制”复选框和您的目标。
  2. 在 Xcode 上,通过 file > 'Add files to "MyProject" 添加文件,然后从您下载的 Alamofire zip 中选择文件 'Alamofire.xcodeproj'。以下是选项:

添加 alamo 项目的选项

如果需要,您可以检查“如果需要复制文件”。如果不这样做,请务必保留 alamofire 项目的文件夹。3. 对 swiftyJSON 项目做同样的事情。通过添加“SwiftyJSON.xcodeproj”文件。4. 转到您的项目设置 > 构建阶段 > 将二进制文件与库链接 5. 添加 Alamofire 和 SwiftyJSON 框架(根据您是为 iphone 还是 mac os x 开发选择正确的框架),如下所示:

添加 Alamofire 和 SwiftyJSON 框架

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

    进口阿拉莫火

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

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

  3. 玩得开心编码!

于 2015-02-03T12:24:39.427 回答
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)
                  })
于 2015-07-03T14:37:06.173 回答
0

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

在此处输入图像描述

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

2)从终端,在您的项目文件夹类型中:

open YourApp.xcworkspace

现在一切都会好起来的:)

于 2017-02-03T09:48:44.853 回答