问号显示在 UIPickerView 上,而不是 Xcode 上的 Realm 数据 10
Question mark displayed on UIPickerView instead of Realm data on Xcode 10
我正在学习从 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/
你能帮我解决这个问题吗?
结果如下:
问题?而不是数据
您的 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
并添加缺少的 _
。
我正在学习从 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/
你能帮我解决这个问题吗?
结果如下:
问题?而不是数据
您的 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
并添加缺少的 _
。