У меня есть makeRequest()
метод внутри UITableViewController со следующим кодом:Как использовать 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)")
печатает хорошо выглядящий ответа на консоль, так что я знаю, что это работает правильно ...
у меня также есть собственный 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 в ["name"]. StringValue в ответе JSON. Однако, когда я println("labelData is: \(labelData)")
, я получаю консольный вывод labelData: Необязательный (""), который, очевидно, пуст.
Вот скриншот того, что я пытаюсь захватить
Что я здесь делаю неправильно и как я могу захватить название места и назначить мой UILabel к нему?
UPDATE:
Я попытался следующий код
let labelData = self.headerInfo?["name"].error
println("labelData is: \(labelData)")
И получить выход консольной: «Error Domain = SwiftyJSONErrorDomain Code = 901 "Array [0] провал, это не является массивом" UserInfo = 0x7fd6d9f7dc10 {NSLocalizedDescription = Ошибка массива [0], это не массив} «Если это кому-то полезно. Я действительно запутался здесь ... Любые идеи?
Где вы устанавливаете значение 'self.headerInfo' в пользовательском' UITableViewCell'? Я предполагаю, что вы хотите, чтобы этот объект JMSON был «местом». Однако не кажется, что вы когда-либо делали это в любом из предоставленных образцов кода. – cnoon
@cnoon Я делаю 'var headerInfo: JSON? { didSet { self.bindData() } } ' –