Как мне вернуть 2 значения из структуры в Swift, если я использую randomElement ()? - PullRequest
1 голос
/ 21 марта 2020

Я создаю приложение для викторины в Swift, где я только что выяснил, как рандомизировать вопросы. Я хочу, чтобы мое приложение показывало категорию текущего вопроса в верхней части экрана, однако, поскольку оно выбирает случайным образом вопрос, я не могу понять, как отобразить правильную категорию в соответствии с заданным вопросом. экран.

Мои вопросы о структуре построены следующим образом:

Question(q: "Question goes here", c: "Category goes here")

И код, который я получил до сих пор, заключается в том, что он возвращает вопрос:

func getQuestion() -> String {
        return question.randomElement()!.text
    }

Для возврата категории я использовал этот бит кода:

func getCategory() -> String {
        return question.randomElement()!.category
    }

Что, конечно, не правильно, потому что это просто случайный выбор категории вместо показа категории, связанной с вопросом, который он выбирает.

Пример:

Question(q: "Question about B", c: "Category A")
Question(q: "Question about A", c: "Category C")
Question(q: "Question about C", c: "Category B")

Выше показано, как он себя ведет. Ниже показано, как он должен вести себя:

Question(q: "Question about A", c: "Category A")
Question(q: "Question about B", c: "Category B")
Question(q: "Question about C", c: "Category C")

Таким образом, он выбирает случайный вопрос и случайную категорию. Но не из того же кортежа. Как я могу это сделать?

Извините, если я не правильно описал это, Engli sh не является моим родным языком.

РЕДАКТИРОВАТЬ: Пример добавил и переписал мой вопрос

Ответы [ 2 ]

0 голосов
/ 21 марта 2020
let randomQuestion = questionArray.randomElement()!
let question = randomQuestion.question
let category = randomQuestion.category
0 голосов
/ 21 марта 2020

Ну, цель не ясна, поэтому возможны варианты ...

  1. вернуть весь вопрос
func getQuestion() -> Question {
        return question.randomElement()!
    }
возврат кортежа из вопроса (который на самом деле такой же, как и выше, поэтому ... не ясно)
func getQuestion() -> (String, String) {
        let question = question.randomElement()!
        return (question.text, question.category)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...