我有一個UITableViewController內makeRequest()
方法用下面的代碼:如何將swiftyJSON dictionaryValue用作UILabel的可用字符串?
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)")
打印一個好看的響應安慰,所以我知道這是正常工作......
我也有一個bindData()
方法用下面的代碼自定義的UITableViewCell類:
func bindData() {
println("VenueDetailHeaderCell data did set")
self.venueDetailTitleLabel.text = self.headerInfo?["name"].stringValue
let labelData = self.headerInfo?["name"].stringValue
println("labelData is: \(labelData)")
}
正如你所看到的,我試圖在JSON響應中將UILabel的文本設置爲[「name」]。stringValue。然而,當我我得到的標籤數據的控制檯輸出是:可選(「」)這顯然是空的。
這裏是我想要抓住
我在做什麼錯在這裏的截圖,我怎麼能搶場地的名字和我的UILabel分配給它?
UPDATE:
我嘗試以下代碼
let labelData = self.headerInfo?["name"].error
println("labelData is: \(labelData)")
而得到的控制檯輸出:「錯誤域= SwiftyJSONErrorDomain代碼= 901 「數組[0]的故障,這是不是數組」 UserInfo = 0x7fd6d9f7dc10 {NSLocalizedDescription = Array [0]失敗,它不是數組}}「如果這對任何人都有用。我真的很困惑......任何想法?
你是哪裏設置的自定義''UITableViewCell'的self.headerInfo'價值?我假設你想要設置爲「場地」JSON對象。但是,您似乎沒有在您提供的任何示例代碼中執行此操作。 – cnoon
@cnoon我做'var headerInfo:JSON? { didSet {self.bindData() } }' –