我makeRequest()
在 UITableViewController 中有一个方法,代码如下:
func makeRequest() {
Alamofire.request(.GET, self.foursquareEndpointURL, parameters: [
//"VENUE_ID" : self.foursquareVenueID,
"client_id" : self.foursquareClientID,
"client_secret" : self.foursquareClientSecret,
"v" : "20140806"
])
.responseJSON(options: nil) { (_, _, data, error) -> Void in
if error != nil {
println(error?.localizedDescription)
} else if let data: AnyObject = data {
let jObj = JSON(data)
if let venue = jObj["response"]["venue"].dictionaryValue as [String: JSON]? {
self.responseitems = jObj
println("venue is: \(venue)")
}
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData() // Update UI
}
}
}
}
还要记住我有财产var responseitems:JSON = []
println("venue is: \(venue)")
打印一个漂亮的控制台响应,所以我知道它工作正常......
我还有一个自定义 UITableViewCell 类,其bindData()
方法具有以下代码:
func bindData() {
println("VenueDetailHeaderCell data did set")
self.venueDetailTitleLabel.text = self.headerInfo?["name"].stringValue
let labelData = self.headerInfo?["name"].stringValue
println("labelData is: \(labelData)")
}
如您所见,我正在尝试将 UILabel 的文本设置为 JSON 响应中的 ["name"].stringValue。但是,当我println("labelData is: \(labelData)")
得到 labelData 的控制台输出时: Optional("") 这显然是空的。
这是我要抓取的屏幕截图
我在这里做错了什么,如何获取场地名称并将我的 UILabel 分配给它?
更新:
我尝试了以下代码
let labelData = self.headerInfo?["name"].error
println("labelData is: \(labelData)")
并获得控制台输出:“Error Domain=SwiftyJSONErrorDomain Code=901 "Array[0] failure, It is not an array" UserInfo=0x7fd6d9f7dc10 {NSLocalizedDescription=Array[0] failure, It is not an array}" 如果是对任何人都有用。我在这里真的很困惑......有什么想法吗?