Как быстро подсчитать логическое значение из JSON ответа - PullRequest
1 голос
/ 27 мая 2020

Как я могу посчитать логическое значение из ответа JSON ?. Сначала я сделал общее количество сообщений, а затем использовал оператор if, чтобы получить только ложные значения.

  • Я хочу, чтобы учитывались только ложные значения. Количество messageReaded = false

Код:

let response = try decoder.decode(ResponseData.self, from: result! as! Data)
if response.isSuccess == true {

    self.AppMsg = response.messageList ?? []
    let msgCount = String(describing: self.AppMsg.count)

    if msgCount.isEmpty == false {
        for i in response.messageList ?? [] {
            if i.messageReaded == false {

            }
        }    
    }
}

Ответ:

{
  "messageList": [
    {
      "messageId": 22,
      "messageReaded": false,
      "messageDate": "27.05.2020 07:01",
      "title": "New Message",
      "messageTypeCode": 1
    },
    {
      "messageId": 21,
      "messageReaded": true,
      "messageDate": "19.05.2020 07:00",
      "title": "Old Message",
      "messageTypeCode": 1
    }
  ],
  "isSuccess": true,
  "message": "İşlem Başarılı.",
  "statusCode": 1
}

1 Ответ

1 голос
/ 27 мая 2020

Отфильтруйте сообщения с условием messageReaded == false и count результатом.

let response = try decoder.decode(ResponseData.self, from: result! as! Data)
if response.isSuccess {
    self.AppMsg = response.messageList ?? [] 

    let unreadCount = self.AppMsg.filter{$0.messageReaded == false}.count
}

Нет необходимости проверять, пуст ли массив перед повторением. Если массив пуст, l oop будет пропущено.

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