【问题标题】:Class Array Error - ''Type of expression is ambiguous without more context''类数组错误 - ''表达式类型不明确,没有更多上下文''
【发布时间】:2019-01-02 11:42:56
【问题描述】:

我对 Swift 编码还很陌生,所以如果可以简单地修复此错误,请见谅!

我创建了一个数组,并为每个变量创建了一个类。我的班级看起来像这样 -

class name {
    var Name: name?
}

class subject {
    var Subject: subject?
}

class grade {
    var Grade: grade?
}

我的数组如下 -

var arr = [

    [
        name: "Koester",
        subject: "Science",
        grade: "9A"
    ],
    [
        name: "Koester",
        subject: "Science",
        grade: "9B"
    ]
]

在第二个代码块的第 8 行,“[”我收到一条错误消息 - “没有更多上下文,表达式的类型是模棱两可的”

我已尝试检查与此“表达式类型在没有更多上下文的情况下不明确”错误相关的所有其他帖子,但我找不到与变量数组直接相关的帖子,而且似乎我第一个在数组本身内部出现错误的。

谢谢!

【问题讨论】:

  • 您真正想要实现的目标是什么?您是否要存储一系列字典?顺便说一句,您应该遵守 Swift 命名约定,即 UpperCamelCase 用于类型,lowerCamelCase 用于变量。另外,为什么要使用 json 标签,您实际上是在尝试解析 JSON 吗? (尽管该数组不是有效的 JSON)。
  • name: "Koester",:你是说"name": "Koester",?这还不清楚。
  • 不相关:类名应大写

标签: arrays json swift


【解决方案1】:

我从您的问题中了解到,您的要求是您需要一个具有存储学生数据的属性的类,并且您需要将该数据添加到 Array

检查以下代码:

StudentDetail 创建一个调用,例如:

class StudentDetail {

    //Create Student Properties
    var name: String?
    var subject: String?
    var grade: String?

    //Initialise properties this way
    init(name: String, subject: String, grade: String) {
        self.name = name
        self.subject = subject
        self.grade = grade
    }
}

现在创建一个类对象,如:

var user1Detail = StudentDetail(name: "Koester", subject: "Science", grade: "9A")
var user2Detail = StudentDetail(name: "Koester", subject: "Science", grade: "9B")

现在你可以这样存储在Array:

var arr = [StudentDetail]()
arr.append(user1Detail)
arr.append(user2Detail)

现在您的arr 将拥有学生详细信息,您可以访问它的属性。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2019-02-01
    • 2022-11-18
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多