UIPickerView 上显示问号,而不是 Xcode 10 上的 Realm 数据

Posted

技术标签:

【中文标题】UIPickerView 上显示问号,而不是 Xcode 10 上的 Realm 数据【英文标题】:Question mark displayed on UIPickerView instead of Realm data on Xcode 10 【发布时间】:2018-09-29 16:10:06 【问题描述】:

我正在学习从 Realm 数据库中填充 UIPickerView。

问题是 UIPickerView 显示“?”而不是数据。

这是我的代码:

import UIKit
import RealmSwift

class AjouterEmpruntViewController: UIViewController,    UIPickerViewDelegate, UIPickerViewDataSource 
    @IBOutlet weak var PickerViewListeAmis: UIPickerView!

    /* Initialisation de Realm */
    let realm = try! Realm()

    var data:Results<Ami>!
    var listOfFriends:[Ami] = []

    override func viewDidLoad() 
        super.viewDidLoad()

        /* Definition des sources du PickerView */
        self.PickerViewListeAmis.dataSource = self
        self.PickerViewListeAmis.delegate = self

        /* Constitution de la liste de pseudos d'amis pour alimenter le PickerView  */
        self.data = realm.objects(Ami.self)
        self.listOfFriends = Array(self.data)
    

    @IBAction func btnSaveEmprunt(_ sender: UIBarButtonItem) 
        self.dismiss(animated: true)
    

    @IBAction func btnCancelEmprunt(_ sender: UIBarButtonItem) 
        self.dismiss(animated: true)
    

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

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

    private func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? 
        print("pseudo = "+listOfFriends[row].pseudo)
        return listOfFriends[row].pseudo
    

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
    
        print("selected Ami is "+listOfFriends[row].pseudo)
    

我按照这个教程http://sourcefreeze.com/ios-uipickerview-example-using-swift/

你能帮我解决这个问题吗?

结果如下: 问题?而不是数据

【问题讨论】:

是否显示?像“项目?”这样的数据还是只有 谢谢 :) ...它只显示“?” 【参考方案1】:

titleForRow 的方法签名错误,所以它没有被调用。

必须是:

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?

不是:

private func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?

删除private 并添加缺少的_

【讨论】:

超级!非常感谢你。我今天花了 8 小时来解决这个问题 :)

以上是关于UIPickerView 上显示问号,而不是 Xcode 10 上的 Realm 数据的主要内容,如果未能解决你的问题,请参考以下文章

UITextField inputview 弹出 UIPickerView 在pickerview中显示问号

访问 JSON 文件以填充 UIPickerView

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

(问号) 而不是旧页面上的ÅÄÖ

php输入数据库,显示为问号,而不是应该的中文?

UIPickerView 未正确显示数据(仅显示“?”)