Я попытался настроить класс с именем dDocCommonSearchBar
, который наследуется от UIView
.Он имеет свойство delegate:dDocCommonSearchBarProtocol
.dDocCommonSearchBarProtocol
- это протокол @objc
.dDocCommonSearchBar
нельзя создать из кода, но xib.
class dDocCommonSearchBar:UIView {
private lazy var paddingV:UIView = UIView()
private lazy var textF:UITextField = UITextField()
private lazy var imageV:UIImageView = {
let view = UIImageView()
view.contentMode = UIView.ContentMode.scaleAspectFill
view.image = UIImage(named: "searchBar_search")
return view
}()
weak var delegate:dDocCommonSearchBarProtocol?
override init(frame: CGRect) {
super.init(frame: frame)
self.setUp()
}
init() {
super.init(frame: CGRect.zero)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.setUp()
}
func textFbecomeFirstResponder() {
self.textF.becomeFirstResponder()
}
}
@objc protocol dDocCommonSearchBarProtocol:NSObjectProtocol {
@objc optional func dDocCommonSearchBarShouldBeginEditing(_ searchBar: dDocCommonSearchBar) -> Bool
}
В следующем классе я получаю сообщение об ошибке:
Использование неразрешенного идентификатора 'dDocCommonSearchBar'
на линии:
let view = dDocCommonSearchBar(frame:CGRect.zero
class dDocHomeSearchVC:dDocCommonSearchBarProtocol {
lazy var searchBar:dDocCommonSearchBar = {
// Error on next line: Use of unresolved identifier 'dDocCommonSearchBar'
let view = dDocCommonSearchBar(frame:CGRect.zero)
return view
}()
lazy var searchBar:dDocCommonSearchBar = {
let headerV =
Bundle.main.loadNibNamed("xxxxxx", owner: nil, options: nil)?[0]
let he = headerV as! dDocCommonSearchBar
return he
}()
}