Невозможно преобразовать значение типа '() → _' в указанный тип UIImageView
Я пытаюсь сделать вид UIImage кликабельным, но мне не везет. Каков наилучший способ выполнить эту задачу? Я получаю сообщение об ошибке: "Не удалось преобразовать значение типа"() → _ "в указанный тип" UIImageView "".
lazy var profileImageView: UIImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "ic_file_upload_white_48pt")
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.contentMode = .scaleAspectFill
imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleSelectorProfileImage)))
imageView.isUserInteractionEnabled = true
return imageView
}
Ответы
Ответ 1
Похож на проблему синтаксиса, попробуйте
func profileImageView() -> UIImageView {
let imageView = UIImageView()
imageView.image = UIImage(named: "ic_file_upload_white_48pt")
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.contentMode = .scaleAspectFill
imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleSelectorProfileImage)))
imageView.isUserInteractionEnabled = true
return imageView
}
Ответ 2
Вы говорите компилятору, что хотите, чтобы profileImageView
содержал замыкание. Если вы хотите, чтобы profileImageView содержал результаты этого замыкания, вам нужно добавить после них имена, чтобы вызвать замыкание:
lazy var profileImageView: UIImageView = {
//your code here
return imageView
}()
Обратите внимание на круглые скобки после закрытия. Это присваивает результат вызова замыкания вашей переменной profileImageView
при первом обращении к переменной.
Редактировать:
Каждый раз, когда вы видите тип (<something>) → type
его замыкание. Бит ->
отделяет параметры от возвращаемого типа. Сообщения об ошибках Swift могут быть трудно расшифровать, но это подсказка, что вы возвращаете закрытие, а не то, что ожидается.
Ответ 3
Вы должны добавить парантез после окончания вычисляемого свойства, чтобы выполнить его.
lazy var profileImageView: UIImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "ic_file_upload_white_48pt")
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.contentMode = .scaleAspectFill
imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleSelectorProfileImage)))
imageView.isUserInteractionEnabled = true
return imageView
}()