swift - 在 swift 中使用循环从编号变量中提取数据

标签 swift realm

我有一个 Realm 数据库。使数据库更具可读性。我设计的题库如下:

class Question: Object {
    @objc dynamic var id: Int = 0
    @objc dynamic var name: String = ""
    @objc dynamic var answered: Bool = false
    @objc dynamic var lastAnswer: Bool = false
    @objc dynamic var howManyTimesAnswered: Int = 0
    @objc dynamic var answer0: String = ""
    @objc dynamic var answer1: String = ""
    @objc dynamic var answer2: String = ""
    @objc dynamic var answer3: String = ""
    @objc dynamic var correctAnswer: Int = 0
    let parentCategory = LinkingObjects(fromType: Category.self, property: "questions") //back relationship to category
}

我正在尝试提取答案并将它们放入元组数组 (String, Bool)

 var currentAnswers = [(String, Bool)]()
    for i in 0...3 {
        if i == question.correctAnswer {
            currentAnswers.append(("question.answer2", true))
        } else {
            currentAnswers.append((question.answer1, false))
        }
    }

我想要实现的是这样的,其中拉出的答案等于我显然下面的那个不会编译

    for i in 0...3 {
        if i == question.correctAnswer {
            currentAnswers.append((question.answer(i), true))
        } else {
            currentAnswers.append((question.answer(i), false))
        }
    }

最佳答案

您可以使用 Key path试试这段代码

  var currentAnswers = [(String, Bool)]()
    for i in 0...3 {
        if i == question.correctAnswer {
            currentAnswers.append((question.value(forKey: "answer\(i)") as! String, true))
        } else {
            currentAnswers.append((question.value(forKey: "answer\(i)") as! String, false))
        }
    }

关于swift - 在 swift 中使用循环从编号变量中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50737025/

相关文章:

ios - 在模拟器中安装了来自 github 的控件 - 现在它随每个应用程序一起启动

ios - 使用 iOS 图表进行交互式跟踪。如何

swift - 插入具有一对一关系的数据 - Realm

android - Realm 比 SQLite 花费更多时间进行读写

ios - 删除 Realm 中的项目时出现错误 "Object has been deleted or invalidated"

ios - Alamofire 清除所有 cookie

ios - 在场景之间快速传递变量?

arrays - 根据 Choices 创建一个执行特定输出的数组

java - 不能是@Required 或@NotNull

android - 如何使用 Realm android 更新表中的值?