2016-07-30 103 views
-2

我是Swift的初学者,我发现这个代码在线。我试着问作者,但他们不会回答,因为我刚开始,如果有人能够明确错误的确切原因以及我如何解决这个问题,我会非常感激。我继续得到错误“致命错误:意外地发现零,同时解开可选值”。我尝试在网上找到解决方案,但没有奏效。有人请帮助我吗?非常感谢! (有点解释的将是巨大的!:))致命错误:意外地发现零,同时解开UIPickerView的可选值

这是我(以及他们的)代码:

import UIKit 

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate 

{ 
    @IBOutlet weak var pickerView: UIPickerView! 


    var pickerDataSource = ["White", "Red", "Green", "Blue"]; 


    override func viewDidLoad() { 

     super.viewDidLoad() 
     self.pickerView.dataSource = self; // This is where the error occurs 
     self.pickerView.delegate = self; 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 


    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 
     return 1 
    } 

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
     return pickerDataSource.count; 
    } 

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! { 
     return pickerDataSource[row] 
    } 

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
    { 
     if(row == 0) 
     { 
      self.view.backgroundColor = UIColor.whiteColor(); 
     } 
     else if(row == 1) 
     { 
      self.view.backgroundColor = UIColor.redColor(); 
     } 
     else if(row == 2) 
     { 
      self.view.backgroundColor = UIColor.greenColor(); 
     } 
     else 
     { 
      self.view.backgroundColor = UIColor.blueColor(); 
     } 
    } 
+0

您是否将您的'pickerView'插座连接到您的故事板中的'UIPickerView'? – vacawama

+0

确保您的IBOutlet未连接到故事板。 – NSGangster

+0

我尝试连接pickerView插座,但它只会重复行'@IBOutlet弱var pickerView:UIPickerView!'。 –

回答

1

您UIPickeView出口从故事板连接到您的ViewController 举例:这样Ctrl + Drag 我想它现在应该工作。 如果不是问题,请在下面评论。

+0

谢谢,但它又增加了两个错误,一个说'连续的声明必须用';'和'Expected Declaration'分隔。有什么办法可以解决这个问题吗?非常感谢! –

+0

更新:我修正了第一个错误'连续声明必须以';'分隔,但我不知道如何解决第二个错误。请帮忙! –

+0

更新:我解决了这个问题,但我添加了另一个代码来修复它。感谢您的帮助! –

相关问题