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")
}
}
eine Ausnahme Haltepunkt und findet, die es auf der Linie – Paulw11
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
Check nil Bedingung zuerst wie diese, dann zuordnen Bild tabbaritem ..... wenn lassen incomingSelectedImage = UIImage (genannt: "settings_icon") ?. withRenderingMode (.alwaysOriginal) {? tabBarItem .selectedImage = incomingSelectedImage } –