2016-09-28 2 views
0

Ich habe alle vorherigen Vorschläge hier zur Behebung dieses Problems versucht, aber immer noch kein Glück gehabt. Es funktionierte (UIPickerView füllte sich korrekt), aber jetzt stürzt die App ab, nachdem viewDidLoad() ausgeführt wurde. Überprüft, ob alle IBOutlets korrekt verbunden sind. Versucht, die Kakaotouch-Datei neu zu erstellen.Swift 3 viewDidLoad() - Schwerwiegender Fehler: unerwartet gefunden Null beim Entpacken ein Optionaler Wert

Hier ist meine Ansicht Controller-Code. Es muss etwas Minderwertiges sein, das ich übersehe. Hilfe!!

class SettingsVC: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate { 

@IBOutlet weak var targetCadenceLabel: UILabel? 
@IBOutlet weak var cadenceStepper: UIStepper? 
@IBOutlet weak var goalPicker: UIPickerView? 

var pickerDataSource = ["improve SPM", "maintain SPM"] 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.goalPicker?.dataSource = self 
    self.goalPicker?.delegate = self 


    //MARK: Setup Tab Bar 
    let tabBarItem = self.tabBarItem 
    let incomingSelectedImage: UIImage! = UIImage(named: "settings_icon")?.withRenderingMode(.alwaysOriginal) 
    tabBarItem?.selectedImage = incomingSelectedImage 
    tabBarItem?.setTitleTextAttributes([NSForegroundColorAttributeName : UIColor(red: 60/255, green: 159/255, blue: 255/255, alpha: 1.0)], for: UIControlState.selected) 
} 


//MARK: - Delegates and data sources 
//MARK: Data Sources 
func numberOfComponents(in pickerView: UIPickerView) -> Int { 
    return 1 
} 

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

//MARK: Delegates 
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? { 
    let titleData = pickerDataSource[row] 
    let myFont = UIFont.systemFont(ofSize: 18) 
    let fontColor = UIColor(red: 60/255, green: 159/255, blue: 255/255, alpha: 1.0) 
    let myTitle = NSAttributedString(string: titleData, attributes: [NSFontAttributeName: myFont,NSForegroundColorAttributeName:fontColor]) 
    return myTitle 
} 

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 

} 

@IBAction func cadenceStepper(_ sender: UIStepper) { 
    targetCadenceLabel?.text = Int(sender.value).description 
} 

@IBAction func goPremiumTapped(_ sender: UIButton) { 
    print("Go Premium Button Tapped") 
}  
} 
+0

eine Ausnahme Haltepunkt und findet, die es auf der Linie – Paulw11

+0

abstürzt Bitte sehen http://www.raywenderlich.com/10209/my-app-crashed-now-what-part-1 zu lernen, wie zu debuggen ein Unfall. Kombiniert mit der doppelten Frage können Sie Ihr Problem herausfinden. – rmaddy

+0

Check nil Bedingung zuerst wie diese, dann zuordnen Bild tabbaritem ..... wenn lassen incomingSelectedImage = UIImage (genannt: "settings_icon") ?. withRenderingMode (.alwaysOriginal) {? tabBarItem .selectedImage = incomingSelectedImage } –

Antwort

0

Sie sind in Ihrem viewDidLoad in nur einer Zeile auszupacken und das ist hier:

let incomingSelectedImage: UIImage! = UIImage(named: "settings_icon")?.withRenderingMode(.alwaysOriginal) 

mit Ausnahme Breakpoint Nach der Überprüfung, dass dies die Linie der Code abstürzt, möchten Sie vielleicht

tun
let incomingSelectedImage:UIImage? .......................... 
Verwandte Themen