Я пытался представить несколько представлений одного и того же класса, используя файл .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)
, но все, на что он указывает, - это я и его адрес памяти.