Ограничить несколько операторов печати в функции запроса - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь запросить записи в DynamoDB.Если запись есть, я хочу, чтобы консоль напечатала название рынка и основной язык клиента.Если записи нет, я хочу, чтобы консоль напечатала «Этой информации нет в наших записях».

Однако на данный момент у меня есть runQuery(), связанная с кнопкой, где при нажатии оба оператора печатаются одним нажатием кнопки.

Примечание. Второй оператор печатается четыре раза.

Вот функция, которая запускается при нажатии кнопки:

func runQuery(){

    appSyncClient?.fetch(query: ListCustomerRegistrationsQuery(),   cachePolicy: .returnCacheDataAndFetch) {(result, error) in
        if error != nil {
            print(error?.localizedDescription ?? "")
            return
        }
        result?.data?.listCustomerRegistrations?.items!.forEach {
            if $0?.firstInitial == self.firstInitialTextField.text && $0?.lastInitial == self.lastInitialTextField.text && $0?.needIndicatorId == self.numberNeedIndicatorTextField.text {
                print(($0?.marketName)! + " " + ($0?.primaryLanguage)!)

            }
            else if $0?.firstInitial != self.firstInitialTextField.text || $0?.lastInitial != self.lastInitialTextField.text || $0?.needIndicatorId != self.numberNeedIndicatorTextField.text {
                print("That info is not in our records.")

            }
            self.performSegue(withIdentifier: "goToDistribution", sender: self)
        }
    }
}

А вот операторы печати, созданные посленажмите эту кнопку один раз:

"Downtown Market English"

"Эта информация отсутствует в наших записях."

"Эта информация отсутствует в наших записях."

" Этой информации нет в наших записях. "

" Этой информации нет в наших записях. "

1 Ответ

0 голосов
/ 30 апреля 2019

Если я вас правильно понимаю, вы хотите вернуть / распечатать только один раз, когда выполняется любое из условий if. В этом случае я предлагаю вам добавить break в обоих местах

result?.data?.listCustomerRegistrations?.items!.forEach {
    if $0?.firstInitial == self.firstInitialTextField.text && $0?.lastInitial == self.lastInitialTextField.text && $0?.needIndicatorId == self.numberNeedIndicatorTextField.text {
        print(($0?.marketName)! + " " + ($0?.primaryLanguage)!)
        return 
    }
    else if $0?.firstInitial != self.firstInitialTextField.text || $0?.lastInitial != self.lastInitialTextField.text || $0?.needIndicatorId != self.numberNeedIndicatorTextField.text {
        print("That info is not in our records.")
        return 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...