【问题标题】:JSON Alamofire POST request error - Value of tuple typeJSON Alamofire POST 请求错误 - 元组类型的值
【发布时间】:2016-10-03 10:17:59
【问题描述】:

我无法理解Alamofire 中的错误,谁能解释一下这个问题。

元组类型的值 '(NSURLRequest?, NSHTTPURLResponse?, 结果)'(又名'(可选, 可选,结果)') 没有成员 “结果”

import UIKit
import Alamofire
import SwiftyJSON

class ViewController: UITableViewController {


var dataArray = Array<JSON>()
//var dataArray :NSMutableArray=[]
//????

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    Alamofire.request(.GET, "http://104.131.162.14:3033/api/ios/detail").validate().responseJSON { response in
        switch response.result {
        case .Success:
            if let value = response.result.value {
                let json = JSON(value)
                //print("JSON: \(json)")

                var trafficJson = json["traffic_partners"]
                trafficJson["type"] = "Traffic"
                self.dataArray.append(trafficJson)

                var newsJson = json["news"]
                newsJson["type"] = "News"
                self.dataArray.append(newsJson)


                var categoryJson = json["category"]
                categoryJson["type"] = "Category"
                self.dataArray.append(categoryJson)


                var topFreeApps = json["top_free_apps"]
                topFreeApps["type"] = "TopApps"
                self.dataArray.append(topFreeApps)


                var topSites = json["top_sites"]
                topSites["type"] = "TopSites"
                self.dataArray.append(topSites)


                var trendingVideos = json["tranding_video"]
                trendingVideos["type"] = "TrendingVideos"
                self.dataArray.append(trendingVideos)


                var sports = json["sports"]
                sports["type"] = "Sports"
                self.dataArray.append(sports)


                var jokes = json["jokes"]
                jokes["type"] = "Jokes"
                self.dataArray.append(jokes)

                //print(self.dataArray[0]["detail"][0].object)
                //print(self.dataArray[2]["detail"].object)

                self.tableView.reloadData()

            }
        case .Failure(let error):
            print(error)
        }
    }

    //tableView.backgroundColor = UIColor.blackColor()
}

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    if (dataArray[indexPath.row]["type"].string == "Traffic") {
        return 185
    }
    else if (dataArray[indexPath.row]["type"].string == "News") {
        return 290
    }
    else if (dataArray[indexPath.row]["type"].string == "Category") {
        return 100.0
    }
    else if (dataArray[indexPath.row]["type"].string == "TopApps") {
        return 180
    }
    else if (dataArray[indexPath.row]["type"].string == "TopSites") {
        return 240
    }
    else if (dataArray[indexPath.row]["type"].string == "TrendingVideos") {
        return 290
    }
    else if (dataArray[indexPath.row]["type"].string == "Sports") {
        return 290
    }
    else if (dataArray[indexPath.row]["type"].string == "Jokes") {
        return 320.0
    }
    else {
        return 600
    }
    //return UITableViewAutomaticDimension
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return dataArray.count
}

【问题讨论】:

  • 如果你使用 swift 3,你必须使用 Alamofire 4.0 及更高版本
  • 你使用的是什么版本的 Swift 和 Alamofire?
  • Alamofire 在“2.0.2”Swift 2
  • 您能解决问题吗?

标签: ios json swift xcode alamofire


【解决方案1】:

这对我有用:

switch response.result {
case .Success(let JSON):
    print("Success with JSON: \(JSON)")

【讨论】:

  • 在 Alamofire 4 中,case .success(let value): print(value)
猜你喜欢
  • 2018-04-10
  • 2023-03-20
  • 2015-11-18
  • 1970-01-01
  • 2019-02-09
  • 2018-07-27
  • 1970-01-01
  • 2018-12-14
  • 1970-01-01
相关资源
最近更新 更多