繁体   English   中英

Xcode中意外的生成错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM