Произошла ошибка для файла XIB в владельце: сегмент self моего кода - PullRequest
0 голосов
/ 08 июня 2019

Я пытался представить несколько представлений одного и того же класса, используя файл .xib, и мое приложение продолжает сбой и указывает мне на часть "owner: self" моего кода.Я не могу понять, что не так с владельцем: self в моем коде.

У меня есть основная раскадровка, которая представляет собой отдельный TableViewController (который связан с его собственным View Controller), и файл .xib, который связан с его собственным файлом Swift.Я уже убедился, что Владелец файла всегда отображает соответствующий класс ("RestaurantView").Имя файла XIB равно RestaurantView.xib, и я убедился, что только владелец файла, а не UIView, относится к классу RestaurantView.

class RestaurantCell: UITableViewCell {
    @IBOutlet weak var restaurantView: RestaurantView!
}

class RestaurantView: UIView {
    @IBOutlet var restaurantView: UIView!

    override init(frame: CGRect) {
        super.init(frame: frame)
        commonInit()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        commonInit()
    }

    func commonInit() {
        Bundle.main.loadNibNamed("RestaurantView", owner: self, options: nil)
        restaurantView.translatesAutoresizingMaskIntoConstraints = false
        self.addSubview(restaurantView)
    }

Я добавил точку останова в строке, которая говорит Bundle.main.loadNibNamed("RestaurantView", owner: self, options: nil), но все, на что он указывает, - это я и его адрес памяти.

...