ios - 如何在 Swift 4 中提取特定数组

标签 ios arrays swift4.1

我想通过它的键来获取数组值。

我在 looping 中用下面的代码设置了数组。

let que = Question(questionText: "\(questionWord)", options: quizAnsArr, correctAns: correctArrIndex, wrongAns: -1, isAnswered: false)

        quizsArray += [que]

现在我得到下面的数组。这是我的数组。
[Kanji_Quiz.Question(questionText: "青", options: ["fast", "color", "heart", "blue"], correctAns: 3, wrongAns: -1, isAnswered: false), Kanji_Quiz.Question(questionText: "暑", options: ["owner", "heart", "hot (temperature)", "end"], correctAns: 2, wrongAns: -1, isAnswered: false)]

我通过使用调用值
print(quizsArray[questionText])

但它'显示错误。我如何通过索引或 smth 调用值。请帮我。

最佳答案

@Kawazoe Kazuke

quizsArray 的类型是 [Question]... 对吗?

所以通过这样做:print(quizsArray[questionText]) ,您要求您的程序进入 quizsArray: [Question]并获取索引等于 questionText 的值.

我不明白应该怎么做 不是 错误。

如果您不想将 quizsArray 从 [Question] 更改为原生 Swift Dictionary ([String:Any]),那么您需要执行以下操作:

• 遍历quizsArray。像这样的东西应该可以完成这项工作:

    for question in quizsArray {
        <code>
    }

• 只有现在您才能访问每个问题。所以:
    for question in quizsArray {
        let text = question.getQuestionText()
        if text.elementsEqual('questionText') {
            let correctAnswerIndex = question.getQuestionAnswerIndex()
            print(question.getQuestionAnswer(correctAnswerIndex))
        }
    }

• 请注意方法getQuestionAnswer(index: Int)getQuestionAnswerIndex()只是我编造的方法。您必须在创建 Question 类/结构的地方编写“getter and setter”代码

• 所以最后,您应该将所有代码转换为函数,其中参数将是(关键)问题文本,函数返回正确答案,甚至返回整个对象。那你就定了👍🏽

关于ios - 如何在 Swift 4 中提取特定数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49974031/

相关文章:

ios - Objective-C 检查带整数的数组是否包含整数

javascript Array.splice() 不执行任何操作

c - 动态和静态混合分配

arrays - 如何找到数组的平均值 - Swift

Swift - textlabel 和 detailTextLabel 的自定义单元格宽度和高度

ios - 为什么 NSDate 字符串中有一些奇怪的字符

ios - timerBar.bounds.size.width 分配错误 "expression is not assignable"

ios - Objective-C 消息被发送到地址为 : 的已释放 'NSThread' 对象(僵尸)

swift - 在 swift4.1 中将 Any 转换为 Float 总是失败