2016-03-01 71 views
0

错误在UISegmentedControl.selectedSegmentIndex入门错误EXC_BAD_INSTRUCTION(代码= I386_INVOP,子码=为0x0)

产生我试着用title属性,而不是交换机,但它并没有帮助,出现了同样的错误。

当我评论整个函数并尝试打印numberOfColumnsSelector.selectedSegmentIndex时,它不会崩溃并打印正确的答案。

控制台输出:“致命错误:意外地发现零而展开的可选值”

我评论,低于该线导致的错误:

import UIKit 
class ViewController: UIViewController { 

    //Declaring variables 
    @IBOutlet weak var numberOfColumnsSelector: UISegmentedControl!   
    @IBOutlet weak var populatedPlacesSelector: UITextField! 

    var numberOfColumns: Int = 0 
    var populatedPlaces: [Int] = [] 

    // This makes those previously declared variables accessible 
    func makeVariablesAccessible() -> (size: Int, popPlacesArray: [Int]) { 
     // THE LINE BELOW IS THE PROBLEMATIC ONE 
     switch numberOfColumnsSelector.selectedSegmentIndex { 
     case 0: 
      numberOfColumns = 2 
     case 1: 
      numberOfColumns = 3 
     case 2: 
      numberOfColumns = 4 
     case 3: 
      numberOfColumns = 5 
     case 4: 
      numberOfColumns = 6 
     case 6: 
      numberOfColumns = 7 
     case 8: 
      numberOfColumns = 8 
     default: 
      numberOfColumns = 2 
     } 

     if populatedPlacesSelector.text != "" { 
      var counter = 0 
      var popPlaceString = "" 
      for c in populatedPlacesSelector.text!.characters { 
       if c == "." { 
        populatedPlaces.append(Int(popPlaceString)!) 
        print(populatedPlaces) 
        print(popPlaceString) 
        popPlaceString = "" 
        counter++ 
       } 
       else { 
        popPlaceString.append(c) 
       } 
      } 
     } 
     return (numberOfColumns, populatedPlaces) 
    } 
} 
+1

你是否检查过'numberOfColumnsSelector'不是零?也许你的插座没有正确连接。 – Michael

+0

是的,所以程序告诉我它是零(至少这是我的想法),但连接正确完成(我只是重新检查它)。 – PKLJ

+0

这段代码什么时候运行?它至少需要在viewDidLoad中。任何早些时候,就像在初始化器中那样,网点将不会被设置。 – Michael

回答

0

我发现的问题是我在另一个ViewController上请求这些值,使得它们无法访问,在我解决这个问题后,它工作,谢谢所有帮助我的人。

相关问题