【发布时间】:2018-02-26 07:30:54
【问题描述】:
我的 Swift 代码中有一个 int 选择器视图。它在一个称为 numbers 的数组中有数字 1-7。当我要求在 didSelectRow 函数内打印 numbers[row] 时,它会打印正确的数字。但在我的提交点击函数中,它只打印 0。它也在 viewWillAppear 中执行此操作。
我本质上希望该行是一个变量,我可以将其用作 int 来延迟某些代码。
let numbers = [1,2,3,4,5,6,7]
var days = Int()
override func viewDidLoad() {
super.viewDidLoad()
self.pickerView.delegate = self
self.pickerView.dataSource = self
}
override func viewWillAppear(_ animated: Bool) {
print(days)
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return String(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]
print(days)
}
@IBAction func submitTapped(_ sender: Any) {
databaseRef.child("numbers").child(self.TextField.text!).setValue(["thename" : UserDefaults.standard.value(forKey: "nametext")])
print(days)
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(days) , execute: {
databaseRef.child("numbers/\(self.TextField.text!)").removeValue()
})
有谁知道为什么它在提交点击函数中总是返回零?
【问题讨论】:
-
这些解决方案有效,我只是删除了 var。
标签: ios arrays swift int pickerview