从 Api Swift 获取数据 [重复]

Posted

技术标签:

【中文标题】从 Api Swift 获取数据 [重复]【英文标题】:Get Data from Api Swift [duplicate] 【发布时间】:2016-01-09 10:02:09 【问题描述】:

我正在尝试从 http://food2fork.com/about/api 调用 Api,但是当我实现这些代码时,它会显示错误。我在这里做这个教程:https://www.topcoder.com/blog/calling-apis-parsing-json-with-swift/

这是我的代码:

import UIKit
import Alamofire
import SwiftyJSON

class ListDishsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource 

  @IBOutlet var dishsTableView: UITableView!

  override func viewDidLoad() 
    super.viewDidLoad()
    print("hello")

    let logo = UIImage(named: "bento")
    let imageView = UIImageView(image:logo)
    self.navigationItem.titleView = imageView

    dishsTableView.dataSource = self
    dishsTableView.delegate = self
  

  override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
  

  func loadDishesData() 
    let urlPath = "http://food2fork.com/api/search?key=67fd12776ee242546ac92d3122dabbd9&q=shredded%20chicken"
    let url: NSURL = NSURL(string: urlPath)!
    let session = NSURLSession.sharedSession()
    let task = session.dataTaskWithURL(url, completionHandler: data, response, error -> Void in
      if error != nil 
        print(error!.localizedDescription)
      

      var error: NSError?

      let jsonResult: AnyObject! = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error: &error) as? NSDictionary
      if error != nil 
        // If there is an error parsing JSON, print it to the console
        print("JSON Error \(error!.localizedDescription)")
      
    )
    task.resume()
  

  func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCellWithIdentifier("DishCell", forIndexPath: indexPath) as! ListDishsTableViewCell
    return cell
  

  func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return 10
  


但它显示如下错误:

任何帮助将不胜感激。

【问题讨论】:

您在哪里声明了“错误”? - 我知道正确学习东西很痛苦,但你应该阅读 Swift 语言书。 虽然我声明了,还是报错 添加变量err的定义 见***.com/a/31264556/2227743 没问题,Khuong。 :) 很高兴能帮上忙。 【参考方案1】:

更新

在 Swift 2 中,JSONObjectWithData 没有参数 error

来自documentation:

+ JSONObjectWithData:options:error:
Returns a Foundation object from given JSON data.

Declaration
SWIFT
class func JSONObjectWithData(_ data: NSData,
                      options opt: NSJSONReadingOptions) throws -> AnyObject
OBJECTIVE-C
+ (id)JSONObjectWithData:(NSData *)data
                 options:(NSJSONReadingOptions)opt
                   error:(NSError * _Nullable *)error

【讨论】:

Renzo 先生请再检查一遍,尽管我已经声明了。还是报错,请看我的更新问题。 @khuong291,你用的是哪个swift? 我使用的是 swift 2, xcode 7 那么,JSONObjectWithData 的参数 error 仅适用于 Objective-C,而不适用于 swift(它可以抛出异常)。

以上是关于从 Api Swift 获取数据 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

IOS Swift我如何从异步方法中获得价值[重复]

使用 HMAC SHA512 从 API 获取数据 - Swift

从 api 获取所有数据以及如何在 swift ios 中仅在单元格上附加标题

使用graphql从api获取数据[重复]

php curl没有从youtube API获取数据[重复]

如何从 .map 循环返回以从 API 获取数据 [重复]