Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我需要[无主的自我]还是[软弱的自我]?_Ios_Swift_Memory Management - Fatal编程技术网

Ios 我需要[无主的自我]还是[软弱的自我]?

Ios 我需要[无主的自我]还是[软弱的自我]?,ios,swift,memory-management,Ios,Swift,Memory Management,我有点困惑为什么我需要使用[无主自我]。据我所知,只有在调用闭包时我不在乎self是否还在的情况下,我才应该使用[unowned self]。但我不明白为什么会是这样。为什么我不在乎赛尔夫是否在身边?我希望self在调用闭包时在场——这就是我在那里编写代码的原因 在动画闭包中我是否需要无主的self?在这种情况下,您不需要使用捕获列表,因为两个闭包都是UIView并且不由self保留。在您的示例中未创建保留周期 override func viewDidLoad() { super.vi

我有点困惑为什么我需要使用[无主自我]。据我所知,只有在调用闭包时我不在乎self是否还在的情况下,我才应该使用[unowned self]。但我不明白为什么会是这样。为什么我不在乎赛尔夫是否在身边?我希望self在调用闭包时在场——这就是我在那里编写代码的原因


动画
闭包中我是否需要无主的self?

在这种情况下,您不需要使用捕获列表,因为两个闭包都是
UIView
并且不由
self
保留。在您的示例中未创建保留周期

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.backgroundColor = UIColor(netHex: 0xfc3158)
    fadeBackground()
    NSTimer.scheduledTimerWithTimeInterval(self.fadeTime, target: self, selector: Selector("fadeBackground"), userInfo: nil, repeats: true)
}

func fadeBackground(){
    UIView.animateWithDuration(self.fadeTime, delay: 0, options: UIViewAnimationOptions.AllowUserInteraction, animations: {
        var randomIndex = Int(arc4random_uniform(UInt32(CONSTANTS.MainColorScheme.count)))
        self.view.backgroundColor = CONSTANTS.MainColorScheme[randomIndex]
    }) { (stuff Bool) -> Void in
    }
}