在变量上使用POP时,类没有初始值设定项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在变量上使用POP时,类没有初始值设定项相关的知识,希望对你有一定的参考价值。

我想在我的一个应用程序中应用面向协议的编程。我创建了一个名为“CustomAnchor”的协议来摆脱Autolayout所需的大量命令。但是当我将此协议分配给常量例如profileImage时,Controller会收到以下错误:

类'ProfileController'没有初始值设定项

在常数我得到这个灰色警告:

  1. 没有初始值的存储属性'profileImageView'会阻止合成初始值设定项

这就是代码的样子:(在底部使用POP)

class ProfileController: UIViewController {

 override func viewDidLoad() {
    super.viewDidLoad()
    self.view.backgroundColor = UIColor.white
    self.navigationItem.title = "Profil"
    self.navigationItem.largeTitleDisplayMode = .never
    fillData()
    setupView()
    confBounds()
 }

 func fillData() {
    profileImageView.image = UIImage(named: "test")
 }

 func setupView() {
    view.addSubview(profileImageView)
 }

 func confBounds() {
    profileImageView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
    profileImageView.anchor(top: self.view.topAnchor, left: nil, bottom: nil, right: nil, paddingTop: 60, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 140, height: 140)
 }

 let profileImageView: UIImageView, CustomAnchor = { () -> UIImageView in
    let pView = UIImageView()
    pView.contentMode = .scaleAspectFill
    pView.clipsToBounds = true
    pView.image = UIImage(named: "test")
    return pView
 }()
}
答案

因为没有人回答我做了一个简单的解决方法,并将财产提供给控制器。不是我想要的(流畅的POP),但它的工作原理..

以上是关于在变量上使用POP时,类没有初始值设定项的主要内容,如果未能解决你的问题,请参考以下文章

“Emgu.CV.CvInvoke”的类型初始值设定项引发异常。

如何从对的初始值设定项列表构造对象?

Emgu.CV.CvInvoke的类型初始值设定项引发异常如何解决 开发环境是VS2010

使用格式参数时,Swift 中的字符串初始值设定项问题

类型初始值设定项引发异常

无法构造“DepartmentDataDelegate”,因为它没有可访问的初始值设定项