Как выполнить кодируемые значения в viewDidload и опции поиска по имени поля, используя swift 4.2? - PullRequest
0 голосов
/ 18 февраля 2019

Я использую codable и пытаюсь получить data из JSON ответа.Здесь я не могу вывести определенное значение в viewDidload, используя swift 4.2, и я использую поиск, но я хочу присвоить filteredData с именем values.

мой код

struct Root: Codable {
    let status: Int
    let message: String
    let country: [Country]
    let cost: Double
    let data: [Datum]
}

struct Country: Codable {
    let id: Int
    let master: String
    let type, active: Int
}

struct Datum: Codable {
    let id, userID, country, card: Int
    let category: Int
    let title, description: String
    let cost: Double
    let attachment, createDate, deviceID, appType: String
    let location: String
    let user: User
    let appTransCard: AppTransCard
    let appTransMaster: AppTransMaster

    enum CodingKeys: String, CodingKey {
        case id
        case userID = "user_id"
        case country, card, category, title, description, cost, attachment
        case createDate = "create_date"
        case deviceID = "device_id"
        case appType = "app_type"
        case location, user
        case appTransCard = "app_trans_card"
        case appTransMaster = "app_trans_master"
    }
}

struct AppTransCard: Codable {
    let card: String
}

struct AppTransMaster: Codable {
    let master: String
}

struct User: Codable {
    let firstname, lastname: String
}

Мне нужно получить значения в пределах viewdidload от Root.cost.

override func viewDidLoad() {
        super.viewDidLoad()

    // here I need to print Root.cost value
}

1 Ответ

0 голосов
/ 18 февраля 2019

Вам необходимо создать новую переменную типа Root, например var root : Root, и для viewDidLoad вы делаете запрос (декодирование) зависимым, если он от API или локального файла JSON.и тогда результат декодирования сохранится внутри корневой переменной

root = result

, тогда вы сможете получить доступ к root.cost

Я также рекомендую вам посмотреть это видео это поможет вам понять, как использовать декодируемые

...