【发布时间】:2016-09-19 02:44:00
【问题描述】:
我正在创建一个监听 CMDeviceMotion 事件的 UIView:
class MyView: UIView{
private var motionManager = CMMotionManager()
let motionQueue = NSOperationQueue()
override func awakeFromNib() {
self.setupView()
}
func setupView(){
self.motionManager.deviceMotionUpdateInterval = 0.5
self.motionManager.startDeviceMotionUpdatesUsingReferenceFrame(.XArbitraryZVertical, toQueue: self.motionQueue, withHandler: self.motionHandler)
}
// MARK: - CMDeviceMotionHandler
let motionHandler : CMDeviceMotionHandler = {
[unowned self] (motion,error) in
}
}
我想将我的 CMDeviceMotionHandler 闭包声明为成员变量,但我得到了错误:
'unowned' 只能应用于类和类绑定协议类型, 不是'我的视图->()->我的视图'
MyView 是 UIView,而 UIView 又是一个类,所以我不明白为什么它抱怨不能应用 unowned。
我已经搜索了具有相同问题的其他问题,但其中大多数都涉及延迟计算的变量。如何为我的方案解决此错误?
【问题讨论】: