SwiftyJson不起作用吗?

时间:2016-01-01 22:34:17

标签: ios json swift swifty-json

enter image description here

我试图从我自己创建的网站上获取信息,我需要读取JSON对象以将其数据导入我的iOS应用程序(用Swift编写)。我只能找到很少的关于如何做的教程,其中大部分都使用SWIFTYJson库(https://github.com/SwiftyJSON/SwiftyJSON)。问题是当我使用库时,实际的库代码本身似乎有一些错误,可能是由于Xcode最近的更新。即使是教程中的例子也不起作用。

有没有不同的apporaches在不使用SwiftyJson的情况下解决这个问题?

由于

这是我下载的实际SwiftyJson文件。现在这是他自己的例子,代码似乎有一些错误。

4 个答案:

答案 0 :(得分:0)

正如您在评论中所述,您使用Xcode 6.3,这是SwiftyJSON无法正常工作的原因。您已经下载了最新版本的库,它与Swift 2.1兼容,如果我没记错的话,Xcode 6.3与Swift 1.2捆绑在一起。您应该始终使用最新版本的Xcode(不包括beta版本)。 Xcode的版本也会影响你拥有的Swift版本。由于Swift是一种年轻的语言,它在版本之间面临着许多变化,这些变化触发了用Swift编写的框架的变化。

答案 1 :(得分:0)

我能看到的第一个错误"没有名为Indexable的类型......"似乎是reported in the SwiftyJSON project few months ago,它的解决方案是使用Xcode 7进行构建。

我还可以看到你使用iOS SDK 8.3,它可能会更新到9.2并解决问题。如果您使用Xcode 6,请尝试更新到Xcode 7,错误可能会被修复。如果新的SDK版本可用,我也没有理由使用旧的SDK版本。

答案 2 :(得分:0)

尝试导入SwiftyJSON文件,如下所示,无需项目。 enter image description here

如果你想像你的版本一样使用:

尝试创建新的swift文件并手动导入此swiftyJSON version。 (不是最新的)这适用于xcode 7.2Swift 2以及deployment target 8.0.

https://gist.github.com/fatihyildizhan/450822246e8deb14099c

  

要求   iOS 7.0+ / Mac OS X 10.9+,   Xcode 7

答案 3 :(得分:-3)

请勿忘记导入AlamofireSwiftyJSON

 // This is Alamofire Request
  func LoginWithAPI(completion : (String) -> ()) {
    Alamofire.request(.POST, "your_api_url", parameters: ["username":"bodrum", "password":"yalikavak"], encoding: ParameterEncoding.JSON)
      .validate()
      .responseJSON { response in
        switch response.result {
        case .Success:
          // Parse your result to JSON object first.
          // JSON is SwiftyJSON object.
          let jsonResponse = JSON(data: response.data!)
          let result = jsonResponse["result"].stringValue
          completion(result)
        case .Failure(let error):
          completion(error.description)
        }
    }
  }

如果您想添加任何header,请使用以下行:

Alamofire.request(.POST, "your_api_url", parameters: ["username":"bodrum", "password":"yalikavak"], encoding: ParameterEncoding.JSON,
  headers: ["header_key": "header_value"])