Я пытаюсь получить доступ к проанализированным данным JSON в операторе if, и выводится следующая ошибка:
Отсутствует метка аргумента 'where:' в вызове
КогдаЯ исправляю ошибку, нажимая fix
, и появляется следующая ошибка:
Невозможно преобразовать значение типа 'Bool' в ожидаемый тип аргумента '(Status) throws -> Bool'
Вот код:
import UIKit
import Foundation
// JSON parsing
struct Welcome: Decodable {
let greeting: String
let instructions: [Instruction]
}
struct Instruction: Decodable {
let statuses: [Status]
let message, messageURL: String
let status: Bool
let load, time: Int
enum CodingKeys: String, CodingKey {
case statuses, message
case messageURL = "message_url"
case status, load, time
}
}
struct Status: Decodable {
let title: String
let code: Int
let status: Bool
let time: Int
}
//main class
class ViewController: UIViewController {
//Hides the status bar
override var prefersStatusBarHidden: Bool {
return true
}
//Storyboard controllers
@IBOutlet weak var downImage: UIImageView!
@IBOutlet weak var upImage: UIImageView!
//The meat of the program
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = "https://issteamdown.com/status.json"
let urlObj = URL(string: url)
URLSession.shared.dataTask(with: urlObj!) {(data, response, error) in
guard let data = data else { return }
do {
let json = try JSONDecoder().decode(Instruction.self, from: data)
json.statuses.forEach { status in
if !json.statuses.contains(where: false) {
print("all true")
// show the image view
self.upImage.isHidden = false
}
}
} catch {
print(error)
}
}.resume()
}
}
Если кто-то может помочь мне с этой ошибкой, я был бы очень признателен.Я пробовал искать, но решения, предлагаемые схожими вопросами, не кажутся очень полезными, или я не реализую их правильно.
Если бы кто-то мог помочь мне понять, что здесь происходит, это было бы фантастическиим.
Заранее спасибо!