为什么我无法将 UIImageView 作为参数传递?

Why am I unable to pass UIImageView as argument?

我正在尝试创建一个 class 来为初始化时传入的图像添加模糊效果,但在传入图像视图时出现错误。我正在使用 Xcode 7.3,Swift 2.2;这是我的代码,请看一下。

这是我的class

class addBlurEffect: UIViewController {

private var newBlurEffect = UIVisualEffectView(effect: UIBlurEffect(style: .Light))
private var objectToBlur = UIImageView()

convenience init(objToBlur: AnyObject) {
    self.init()

    objectToBlur = objToBlur as! UIImageView
    blur()
}

func blur() {
    newBlurEffect.frame = objectToBlur.bounds
    objectToBlur.addSubview(newBlurEffect)
}

}

这是我在 ViewController.swift 文件中的代码

@IBOutlet weak var blurHeader: UIImageView!

var addBlur = addBlurEffect(_: blurHeader)

但是我得到这个错误"Instance member 'blurHeader' cannot be used on type 'ViewController'" instance error

非常感谢任何帮助指出我可能的解决方案。谢谢

哦,我也尝试了以下结果相同:

convenience init(objToBlur: UIImageView) {
    self.init()

    objectToBlur = objToBlur
    blur()
}

这有两个问题:

@IBOutlet weak var blurHeader: UIImageView!
var addBlur = addBlurEffect(_: blurHeader)

第一,第二行连Swift都没有。纯属无稽之谈。也许你的意思是:

@IBOutlet weak var blurHeader: UIImageView!
var addBlur = addBlurEffect(objToBlur:blurHeader)

但是你也不能这么说,至少不能像你展示的那样,因为你不能初始化一个 属性 (addBlur) 来引用另一个 属性 (blurHeader).