2016-03-01 70 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上請求這些值,使得它們無法訪問,在我解決這個問題後,它工作,謝謝所有幫助我的人。

相關問題