在WWDC 2014会议403 中级Swift和成绩单中,有以下幻灯片
在这种情况下,发言人说,如果我们不在[unowned self]
那里使用,那将是内存泄漏.这是否意味着我们应该始终使用[unowned self]
内部封闭?
在Swift Weather应用程序的ViewController.swift的第64行,我不使用[unowned self]
.但我通过使用一些@IBOutlet
像self.temperature
和更新UI self.loadingIndicator
.它可能没问题,因为@IBOutlet
我所定义的都是weak
.但为了安全起见,我们应该一直使用[unowned self]
吗?
class TempNotifier {
var onChange: (Int) -> Void = {_ in }
var currentTemp = 72
init() {
onChange = { [unowned self] temp in
self.currentTemp = temp
}
}
}
Run Code Online (Sandbox Code Playgroud) 我注意到
textField.publisher(for: \.text)
Run Code Online (Sandbox Code Playgroud)
在编辑完成时传递事件,但不是针对每个字符/编辑更改。我如何获得一个发布者,它会为每次更改发送事件?在 ReactiveSwift 中,它将是
textField.reactive.continousTextValues()
Run Code Online (Sandbox Code Playgroud)
而在 RxSwift 中,它只是(如何在 RxSwift 中每次 UITextField 文本属性更改时获得信号)
textField.rx.text
Run Code Online (Sandbox Code Playgroud)
我采取的方法:
publisher(for:options:)
方法,但对于所需的结果没有合适的选项。textField.addTarget(self, action: #selector(theTextFieldDidChange), for: .editingChanged)
(UITextField 文本更改事件)@Published
变量,隐藏值实际上来自 - (或者我错过了什么?)。我目前不知道如何做到这一点,我觉得有回到 ReactiveSwift 的趋势,但我想问你,在退步之前。