swift 数字显示问号的选择器视图

swift picker view with numbers displaying question marks

我已将选择器视图添加到我的应用程序并将其设置为数字数组。当我 运行 应用程序时,我看到的都是问号。

有人知道问题出在哪里吗?我也尝试过使用类型 Int 并收到相同的结果。

这是我的代码。

import UIKit
import Firebase
import FirebaseDatabase
import FirebaseStorage

class myViewController: UIViewController, UIPickerViewDelegate,UIPickerViewDataSource {
    @IBOutlet weak var settings: UIBarButtonItem!
    @IBOutlet weak var myTextField: UITextField!
    @IBOutlet weak var enterExit: UISegmentedControl!

    @IBOutlet weak var dayLabel: UILabel!
    @IBOutlet weak var pickerView: UIPickerView!
    @IBOutlet weak var daysTextField: UITextField!

    let numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]
    var hhh = Int()
    let seconds = 60.0

    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }

    private func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> Int? {
        return numbers[row]
    }

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return numbers.count
    }

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        var days = numbers[row]
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        self.pickerView.delegate = self
        self.pickerView.dataSource = self

您的问题在于:

private func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> Int? {
    return numbers[row]
}

这个方法不应该是私有的,它应该有正确的签名。此委托方法需要 return 一个可选的 String,而不是一个可选的 Int.

private func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return String(numbers[row])
}