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

标签 ios swift realm uipickerview

我正在学习从 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 并添加缺少的 _

关于ios - UIPickerView 上显示问号,而不是 Xcode 10 上的 Realm 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52570177/

相关文章:

UITableViewCell "read more"内的 iOS UITextView 就像在现代 App Store 中一样

android - 原生 Android/iOS 开发与 Marmalade SDK

ios - 在后台检测可达性

android - Realm 与 Android 数据绑定(bind)混淆

ios - 什么时候不为 objective-c 中的委托(delegate)使用协议(protocol)?

ios - NSMergeConflict(两个线程) - 设置合并策略无法解决

ios - 在新的 View Controller 上显示警报

ios - 关闭位置和通知设置 Xcode Ui 测试

ios - swift iOS 是否有一种快速填充 Realm 数据库的方法

ios - 在 Realm 中按键路径排序