Arrays MVC模式下,模型类不能调用用于创建数组的初始化器之一
我正在尝试用Swift和MVC设计模式创建一个测验应用程序。我遇到一个错误,当我试图调用问题变量来创建一个名为“Questions”的数组时,它无法识别问题变量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) {
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模式。如果你能帮我的话,我在这方面是新手。我会非常感激的。谢谢
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功能来改进您的代码