Полный код для этой отрасли hereИОС Swift ViewController Loaded от Выбор Tableview Cell Теряет Reference
Посмотреть контроллер «MovieDetailsVC» представлен навигации контроллера при выборе ячейки.
Контроллер представления представления, «ViewController», сохраняет строку tableView для отображения в NSUserDefaults как Int.
"MovieDetailsVC" читает строку ok. Затем он извлекает весь массив информации о пользовательских классах из CoreData и сохраняет строку массива в свойстве.
Сначала данные отображаются нормально. Соединения IBOutlet настроены нормально. Я отключил и повторно подключил два выхода на MovieDetailsVC, так что это должно быть нормально.
"viewDidLoad" называется последовательным временем. Не уверен, откуда. Когда он вызывается, объект coredata и номер строки вытягиваются в порядке.
Вопрос находится в строке «lblTitle.text = self.movieRecord.title». Я предполагаю, что любой из IBOutlets вызовет ту же проблему.
Ошибка выброшен является то, что вы увидели бы, если выходы не были связаны:
фатальная ошибка: неожиданно любят ноль, а разворачивание факультативное значение.
Код для MovieDetailsVC приведен ниже. Любые идеи, почему эта выходная линия будет разорваться после работы нормально, будут весьма признательны.
import UIKit
import CoreData
class MovieDetailsVC: UIViewController {
@IBOutlet var lblTitle: UILabel!
@IBOutlet var lblDescr: UILabel!
@IBOutlet var lblLink: UILabel!
@IBOutlet var imgMovie: UIImageView!
var movieRecord:FavMovie!
var favMovies = [FavMovie]()
override func viewDidLoad() {
super.viewDidLoad()
fetchAndSetResult()
}
func fetchAndSetResult() {
let app = UIApplication.sharedApplication().delegate as! AppDelegate
let context = app.managedObjectContext
let fetchRequest = NSFetchRequest(entityName: "FavMovie")
do {
let results = try context.executeFetchRequest(fetchRequest)
self.favMovies = results as! [FavMovie]
} catch let err as NSError {
print(err.description)
}
if let row = NSUserDefaults.standardUserDefaults().objectForKey("movieRow") as? Int {
self.movieRecord = self.favMovies[row]
configureCellDescr()
}
}
func configureCellDescr() {
lblTitle.text = self.movieRecord.title
lblDescr.text = self.movieRecord.descrWhyGood
lblLink.text = self.movieRecord.linkImdb
imgMovie.image = self.movieRecord.getImg()
}
}
Вы имеете в виду, что коды в методе configureCellDescr() вызывают ошибку. Если вы не знаете, какая строка кода вызывает ошибку, вы должны добавить контрольную точку исключения для ее отслеживания. – Surely
Отредактировано, чтобы показать строку, в которой происходит сбой кода. –
Извините, отредактировано, чтобы показать ошибку перевода строки –