Arrays MVC模式下,模型类不能调用用于创建数组的初始化器之一

Arrays MVC模式下,模型类不能调用用于创建数组的初始化器之一,arrays,swift,model-view-controller,Arrays,Swift,Model View Controller,我正在尝试用Swift和MVC设计模式创建一个测验应用程序。我遇到一个错误,当我试图调用问题变量来创建一个名为“Questions”的数组时,它无法识别问题变量 import UIKit struct QuizModel{ var question: String! var options: [String]! var answer: Int! init(question:String, options:[String], answer:Int) {

我正在尝试用Swift和MVC设计模式创建一个测验应用程序。我遇到一个错误,当我试图调用问题变量来创建一个名为“Questions”的数组时,它无法识别问题变量

import UIKit

struct QuizModel{

    var question: String!
    var options: [String]!
    var answer: Int!



init(question:String, options:[String], answer:Int) {

    self.question = question
    self.options = options
    self.answer = answer

    }
}
var questions: QuizMode!
这是我的测验。模型课

import UIKit

class QuizViewController: UIViewController {

    @IBOutlet weak var QuestionLabel: UILabel!
    @IBOutlet var Options: [UIButton]!

    var Questions = QuizModel([question]()) // This gives an error:(

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        Questions = QuizModel(question: "What is my name?", options: ["AJ","Sazzad","Sami","Daniel"], answer: 2)
    }
如果我不使用mvc模式,它是可以工作的,但是我想学习如何使用mvc模式。如果你能帮我的话,我在这方面是新手。我会非常感激的。谢谢

  • 使用适当的变量命名约定(lowerCamelCase)
  • 由于您定义了自定义初始值设定项,并且
    Struct
    是一种值类型,因此您将 您将不再有权访问
    默认初始值设定项

    您必须明确定义默认初始值设定项以删除错误。 前

    二,。如果您声明默认初始值设定项并像这样声明它,您的错误将消失-

    var questions = QuizModel() 
    
    建议- 如果QuizModel最初可以为nil,那么将其声明为可选,则不需要定义默认初始值设定项

    var questions: QuizModel?
    
    或者在首次初始化或首次使用后不能为零。 您可以选择隐式可选变量

    import UIKit
    
    struct QuizModel{
    
        var question: String!
        var options: [String]!
        var answer: Int!
    
    
    
    init(question:String, options:[String], answer:Int) {
    
        self.question = question
        self.options = options
        self.answer = answer
    
        }
    }
    
    var questions: QuizMode!
    
    首先思考和分析您的问题,并使用所有swift功能来改进您的代码