快速选择器视图,数字显示问号

Posted

技术标签:

【中文标题】快速选择器视图,数字显示问号【英文标题】:swift picker view with numbers displaying question marks 【发布时间】:2017-09-16 03:50:53 【问题描述】:

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

有谁知道问题出在哪里?我也尝试过使用 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

【问题讨论】:

看看这个:***.com/questions/40199826/…,我觉得你需要了解一下uipickerviewdelegateuipickerviewdatasource 用您的相关代码更新您的问题。显示选择器视图的委托和数据源方法。 这是我的代码@3stud1ant3 这里是代码@rmaddy 尝试在 titleForRow 方法之前删除 private 【参考方案1】:

您的问题在于:

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

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

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

【讨论】:

以上是关于快速选择器视图,数字显示问号的主要内容,如果未能解决你的问题,请参考以下文章

如何快速更改选择器视图的文本颜色? [复制]

将值从选择器视图设置为文本字段,而无需以编程方式全局快速声明 uitextfield

如何在选择器中快速获取所选项目的标题和项目的价值?

日期选择器中的小时:分钟:秒如何快速

值更改时快速重新加载视图

UiPickerview 值在 swift 中显示为问号(“?”) - 但是在将其分配给文本框时获得正确的值