我想在文本字段中输入学生姓名并在标签中显示他的成绩 (swift 4)

i want to type student name in the text field and show his grade in the label (swift 4)

我想在文本字段中输入学生姓名并在标签中显示他的成绩 我有一个带有学生姓名和他的成绩的字典,我想把学生姓名放在文本字段中,然后按下按钮,然后他的成绩就会出现在标签中,每次我输入学生姓名时,我都希望他的成绩出现

import UIKit

class ViewController: UIViewController {

let studentsNamesAndGrades = ["Bushra":92,"Reem":80,"Maha":100,"Leen":74,"Sara":85]

@IBOutlet weak var myLabel2: UILabel!

@IBOutlet weak var myTextField: UITextField!

@IBAction func myButton2(_ sender: Any) {

}

override func viewDidLoad() {
    super.viewDidLoad()

}    
}

抱歉,我是 xcode 的新人,当我输入你的代码时,我收到一条错误消息

无法使用 'String?'

类型的索引下标“[String : Int]”类型的值

出现在这段代码之后

 let studentGrade = studentsNamesAndGrades[nameFromField]

要完成这项工作,您需要让您的操作从字段中获取文本输入,并将其用作 key 到词典。如果名称与字段中的文本相匹配,则该键的 value 将放置在标签中。

@IBAction func myButton2(_ sender: Any) {
  myLabel2.text = "\(studentsNamesAndGrades[myTextField.text])"
}

详细代码相同:

@IBAction func myButton2(_ sender: Any) {
  let nameFromField = myTextField.text 
  let studentGrade = studentsNamesAndGrades[nameFromField] // this will produce optional Int
  if let studentGrade = studentGrade { // this will unwrap optional
    myLabel2.text = "\(studentGrade)" // this will interpolate Int value as String and assign to the labelText
  } else { // if unwrapping failed meaning there's no value for this key
    myLabel2.text = "No grade for this student found"
  }

}