类数组错误 - "Expressions are not allowed at the top level"



我对编写 Swift 很陌生,所以如果这个错误可以简单地修复,请原谅我!

我在 Xcode 中使用 swift 创建了一个数据模型,并创建了一个变量数组,以便获得学生的详细信息和属性。这段代码在 swift 操场上没有错误,但是当我在项目中使用它时,我在变量行中收到"顶级不允许表达式"错误。类和对象如下 -

class StudentDetail {
//Create Student Properties
var n: String?
var s: String?
var g: String?
//Initialise Properties
init(name: String, subject: String, grade: String) {
    self.n = name
    self.s = subject
    self.g = grade
}
}

let user1Detail = StudentDetail(name: "Koester", subject: "Science", grade: "9A")
let user2Detail = StudentDetail(name: "Tilly", subject: "Math", grade: "9A")
let people = [user1Detail, user2Detail]
//Variable Array
var arr = [StudentDetail]()
arr.append(user1Detail)
arr.append(user2Detail)

我试图将变量 arr 放在类视图控制器中,但这只会触发更多错误。我尝试过查看类似的问题,但没有一个直接帮助我的问题。

arr.append(user1Detail) 这样的语句只能出现在闭包中(包括方法、函数、初始化器等)。声明可以放在类或全局级别。

您的文件可能如下所示:

class StudentDetail {
    //Create Student Properties
    var n: String?
    var s: String?
    var g: String?
    //Initialise Properties
    init(name: String, subject: String, grade: String) {
        self.n = name
        self.s = subject
        self.g = grade
    }
}
class ViewController: UIViewController {
    let user1Detail = StudentDetail(name: "Koester", subject: "Science", grade: "9A")
    let user2Detail = StudentDetail(name: "Tilly", subject: "Math", grade: "9A")
    let people = [user1Detail, user2Detail]
    var arr = [StudentDetail]()
    override func viewDidLoad() {
       arr.append(user1Detail) // now this is in a method
       arr.append(user2Detail)
    }
}

您必须拥有在类或结构中声明和使用属性的所有代码

对代码的第二部分执行类似操作

class Test {
    let user1Detail = StudentDetail(name: "Koester", subject: "Science", grade: "9A")
    let user2Detail = StudentDetail(name: "Tilly", subject: "Math", grade: "9A")
    let people = [user1Detail, user2Detail]
    func doStuff() {
       //Variable Array
        var arr = [StudentDetail]()
        arr.append(user1Detail)
        arr.append(user2Detail)
    }

不是一个非常有用的类,但关于您需要做什么的快速示例

相关内容

最新更新