Ios 由于闭包强引用或NSTimer,我的Swift代码没有调用DENIT。我怎样才能解决它?
如您所见,我已经在闭包中添加了Ios 由于闭包强引用或NSTimer,我的Swift代码没有调用DENIT。我怎样才能解决它?,ios,swift,model-view-controller,memory-leaks,Ios,Swift,Model View Controller,Memory Leaks,如您所见,我已经在闭包中添加了[无主自我]。我不知道为什么这个视图控制器仍然没有调用deinit()。我猜某处还是有内存泄漏 我需要停止VIEWDID上的计时器吗?我该怎么做?解决了我的问题 我不得不使我的计时器在VIEW上失效 override func viewDidLoad() { super.viewDidLoad() fadeBackground() NSTimer.scheduledTimerWithTimeInterval(self.
[无主自我]
。我不知道为什么这个视图控制器仍然没有调用deinit()。我猜某处还是有内存泄漏
我需要停止VIEWDID上的计时器吗?我该怎么做?解决了我的问题
我不得不使我的计时器在VIEW上失效
override func viewDidLoad() {
super.viewDidLoad()
fadeBackground()
NSTimer.scheduledTimerWithTimeInterval(self.fadeTime, target: self, selector: Selector("fadeBackground"), userInfo: nil, repeats: true)
}
func fadeBackground(){
var spiralView: UIImageView?
var subviews = self.view.subviews
for v in subviews{
if v.isKindOfClass(UIImageView){
spiralView = v as? UIImageView
}
}
UIView.animateWithDuration(self.fadeTime, delay: 0, options: UIViewAnimationOptions.AllowUserInteraction, animations: { [unowned self] () -> Void in
var randomIndex = Int(arc4random_uniform(UInt32(CONSTANTS.MainColorScheme.count)))
var randomIndex2 = Int(arc4random_uniform(UInt32(CONSTANTS.MainColorScheme.count)))
self.view.backgroundColor = CONSTANTS.MainColorScheme[randomIndex]
if spiralView != nil {
spiralView!.tintColor = CONSTANTS.MainColorScheme[randomIndex2]
}
}) { (stuff Bool) -> Void in
}
}
更好:
self.fader?.invalidate()
,否则如果fader
为nil
,它将崩溃。
var fader: NSTimer?
override func viewWillDisappear(animated: Bool) {
println("lobby viewWillDisappear")
super.viewWillDisappear(animated)
self.fader!.invalidate()
self.fader = nil
}