Я испробовал все предыдущие предложения здесь для устранения этой проблемы, но до сих пор не повезло. Он работал (UIPickerView был правильно заполнен), но теперь приложение вылетает после запуска viewDidLoad(). Убедитесь, что все IBOutlets подключены правильно. Попробовал пересоздать файл касания какао.Swift 3 viewDidLoad() - Неустранимая ошибка: неожиданно найдено нуль при развертывании необязательного значения
Вот мой код контроллера. Это должно быть нечто второстепенное, с которым я не обращаю внимания. Помогите!!
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")
}
}
Установить точку останова исключения и найти какую линию он разваливается на – Paulw11
Пожалуйста, смотрите http://www.raywenderlich.com/10209/my-app-crashed-now-what-part-1, чтобы узнать, как отлаживать крушение. В сочетании с дублирующимся вопросом вы можете выяснить свою проблему. – rmaddy
проверка ноль состояние первой, как это, а затем присвоить tabbaritem изображение ..... если пусть incomingSelectedImage = UIImage (назван: "settings_icon") ?. withRenderingMode (.alwaysOriginal) {? tabBarItem .selectedImage = incomingSelectedImage } –