Я пытаюсь получить доступ к значениям в моей структуре данных JSON, которые возвращаются из моего вызова API. Я хочу показать изображение shared
, только если значение shared
в моем JSON истинно, иначе отобразите другое изображение. В настоящее время, когда я запускаю приложение, первые два результата не отображают изображение, так как в базе данных значение false. Но когда я прокручиваю вниз и затем прокручиваю назад, они появляются. Я немного смущен, как использовать JSON для проверки условного. Я проверяю условие для каждой строки в правильном месте? Будет ли что-то вроде SwitfyJSON лучше всего подходит для доступа к моей вложенной структуре данных JSON?Swift and Alamofire - Доступ к значению JSON для условного оператора
class FactsTableViewController: UITableViewController, UISearchBarDelegate {
var data = [AnyObject]()
var id = String()
func callAPI() {
let user = "user"
let pass = "pass"
let url = "https://example.com/api"
Alamofire.request(.GET, url, parameters: nil)
.authenticate(user: user, password: pass)
.responseJSON { (request, response, JSON, error) in
self.data = JSON! as [AnyObject]
self.tableView.reloadData()
self.cacheFacts()
}
}
override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell {
let cell = tableView!.dequeueReusableCellWithIdentifier("facts", forIndexPath: indexPath!) as FactTableViewCell
cell.factTitle.text = data[indexPath!.row]["preferredPhrase"] as? String
cell.factBody.text = data[indexPath!.row]["content"] as? String
// If the value of teamShared is true show image, else show something different
if let shared = self.data[indexPath!.row]["shared"] as? Bool {
var isShared = UIImageView(frame: CGRectMake(10, 95, 15, 15)); // set as you want
var isSharedImage = UIImage(named: "team.png");
isShared.image = isSharedImage;
cell.addSubview(isShared);
// This always prints true even if the JSON is set to false. Can't figure out why this is?
println(shared)
}
return cell
}
}
Если вы всегда печатаете правду, то почему вы не видите изображение с самого начала? – Shuo