也许有人可以帮助我。我从 IOSCcreator 复制了项目“向 TableView 添加行”。现在我更改了可以使用 pickerview 添加项目的文件。在第 44 行 (pickOption = carName.text
) 它失败了:
Cannot assign a value of type String to a value of type [String].
尝试了很多东西,但没有任何效果。
import UIKit
class CarDetailViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var carName: UITextField!
var pickOption = ["Opel", "Mercedes", "Hyundai", "Kia"]
override func viewDidLoad() {
super.viewDidLoad()
var pickerView = UIPickerView()
pickerView.delegate = self
carName.inputView = pickerView
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickOption.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return pickOption[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
carName.text = pickOption[row]
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "doneSegue" {
pickOption = carName.text
}
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
self.view.endEditing(true)
}
}
最佳答案
因为 pickOption
是一个数组而 carName
text 是一个字符串,你有两个选择:
- 将
carName
添加到数组中,在这种情况下,您可以执行pickOption.append(carName.text)
- 用单个项目替换旧列表,在这种情况下,您可以执行
pickOption = [carName.text]
关于swift - 在 Swift 中键入 [String] 的 String 类型的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31762673/