Я начал получать эту ошибку случайным образом (возможно, из-за обновления swift), но когда я достигаю, doSet in detailItem, я вызываю configureView. В configureView я проверяю, действительно ли параметр detailItem установлен, а затем начал назначать значения моим выводам.Weird Ошибка при установке detailItem в DetailViewController от MasterViewController
if let detail: Posting = self.detailItem {
print("detail title is ")
println(detail.title)
// Title
self.titleLabel.text = detail.title
Однако этот сбой с выходом:
detail title is Skiing in Vail
fatal error: unexpectedly found nil while unwrapping an Optional value
Ошибка на линии:
self.titleLabel.text = detail.title
Я не понимаю, почему это происходит сбой, когда он четко установлен. .. Обратите внимание, что этого не происходит, если я вызываю configureView
из вида viewDidLoad.
Это происходит только тогда, когда я называю его от
var detailItem: Posting? {
didSet { self.configureView() }
}
Что-то я не хватает? Это работает асинхронно или что-то в этом роде?
Это звучит очень похоже на ошибку, которую вы получите, если попытаетесь использовать метод prepareForSegue(), а затем установите 'someLabel.text =" "' внутри метода до того, как данный экземпляр будет создан. В вашем случае, вы абсолютно уверены, что экземпляр 'self.titleLabel' создан? В первом примере кода вы можете добавить 'println (self.titleLabel.text)', чтобы узнать, какое значение находится во время выполнения. – kbpontius
Да, 'titleLabel.text' еще не установлен. Итак, как я должен устанавливать параметр detailItem, если не в вызове prepareForSegue в masterVC – mharris7190