[英]unexpected build error in Xcode
我正在尝试使用swift作为一个小型个人项目在Xcode v6.2中构建iOS应用。 到目前为止,我已经将自己的研究成果整理到一起,但是当我尝试构建时,以下代码引发错误。 快速构建完整的应用程序超出了我的知识范围,因此我希望有人能够朝着正确的方向引导我,这是显而易见的。
目的只是为了填充选择器视图,因此,如果有一些更简单的逻辑,我就不会以任何方式绑定到代码。
这是代码:
import UIKit
import iAd
import QuartzCore
class ViewController: UIViewController, ADBannerViewDelegate, UIPickerViewDataSource, UIPickerViewDelegate{
@IBOutlet weak var yearPicker: UIPickerView!
@IBOutlet weak var yearLabel: UILabel!
let listView = ["2013", "2014", "2015"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
println("Entering super.viewDidload() function")
yearPicker.delegate = self
yearPicker.dataSource = self
}
//Data Sources
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return listView.count
}
//Delegates
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return listView[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
yearLabel.text = listView[row]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我收到的错误是:
致命错误:解开Optional值时意外发现nil
并且它在IDE中突出显示了以下几行:
yearPicker.delegate = self
如果还有其他可能有用的方法,请告诉我。
因此,我最终再次开始,通过ctrl创建连接并拖动到编辑器中以创建@IBOutlet
连接。
然后,我删除了.delegate
和.dataSource
方法,因为收到一条错误消息,指出yearPicker没有这些成员。 所以现在我剩下的代码可以完美工作了:)
感谢Abizern使我走上正确的道路。
import UIKit
import iAd
import QuartzCore
class ViewController: UIViewController, ADBannerViewDelegate, UIPickerViewDataSource, UIPickerViewDelegate{
@IBOutlet var yearPicker: [UIPickerView]!
@IBOutlet weak var yearLabel: UILabel!
let listView = ["2013", "2014", "2015"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
//Data Sources
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return listView.count
}
//Delegates
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return listView[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
yearLabel.text = listView[row]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.