Удалить опционально и ноль - PullRequest
0 голосов
/ 27 апреля 2018

cellForRow

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) 
    -> UITableViewCell {
        guard let cell = 
            tableView.dequeueReusableCell(withIdentifier: "EventsCell") as? EventsCell 
            else { return UITableViewCell() }
        cell.homeLabel.text = events[indexPath.row].homeTeamName
        cell.awayLabel.text = events[indexPath.row].awayTeamName
        cell.homeGoalLbl.text = 
            String (describing: events[indexPath.row].result.goalsHomeTeam)
        cell.awayGoalLbl.text = 
            String (describing: events[indexPath.row].result.goalsAwayTeam)
        return cell
    }

Codables

class EventsFull: Codable {
    let fixtures: [EventsData]
    init(fixtures: [EventsData]) {
        self.fixtures = fixtures
    }
}

class ResultsData: Codable {
    let goalsHomeTeam: Int?
    let goalsAwayTeam: Int?
    init(goalsHomeTeam: Int,goalsAwayTeam: Int) {
        self.goalsHomeTeam = goalsHomeTeam
        self.goalsAwayTeam = goalsAwayTeam
    }
}

class EventsData: Codable {
    let date: String
    let status: String
    let matchday: Int
    let homeTeamName: String
    let awayTeamName: String
    let result: ResultsData
    let odds: Double?

    init(date: String, status: String, matchday: Int, homeTeamName: String, awayTeamName: String, result: ResultsData, odds: Double) {
        self.date = date
        self.status = status
        self.matchday = matchday
        self.homeTeamName = homeTeamName
        self.awayTeamName = awayTeamName
        self.result = result
        self.odds = odds  
    }
}

enter image description here

Консоль

downloaded

Optional(3)
Optional(2)

Как убрать Optional из вида и как "ноль" не появляется?

1 Ответ

0 голосов
/ 27 апреля 2018

Если мы получим nil, какая строка должна появиться в ярлыках целей? Вы должны указать это. Тогда вы можете написать это:

let ifnil = "" // or whatever the desired string is
cell.homeGoalLbl.text = 
    events[indexPath.row].result.goalsHomeTeam.flatMap {String($0)} ?? ifnil
cell.awayGoalLbl.text = 
    events[indexPath.row].result.goalsAwayTeam.flatMap {String($0)} ?? ifnil

Это выполнит обе работы одновременно - это исключит и «Необязательно», и «ноль» в качестве возможных значений метки.

[см. https://stackoverflow.com/a/42960286/341994.]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...