У меня есть метод 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 значение ["name"]. StringValue в ответе JSON. Однако, когда я println("labelData is: \(labelData)")
, я получаю в консоли вывод labelData: Необязательный (""), который, очевидно, пуст.
Вот скриншот того, что я пытаюсь захватить
Что я здесь делаю не так и как я могу получить название места и назначить ему свой UILabel?
ОБНОВИТЬ:
Я пробовал следующий код
let labelData = self.headerInfo?["name"].error
println("labelData is: \(labelData)")
И получите консольный вывод: "Error Domain = SwiftyJSONErrorDomain Code = 901" Ошибка массива [0], это не массив "UserInfo = 0x7fd6d9f7dc10 {NSLocalizedDescription = Array [0] failure, This is not an array}" Если это пригодится кому угодно. Я действительно запутался ... Есть идеи?
self.headerInfo
в своем пользовательскомUITableViewCell
? Я предполагаю, что вы хотите, чтобы это было установлено для объектаvenue
JSON. Однако не похоже, чтобы вы когда-либо делали это в любом из предоставленных вами примеров кода. - person cnoon   schedule 19.04.2015var headerInfo:JSON? { didSet { self.bindData() } }
- person Steven Schafer   schedule 20.04.2015