クロージャパラメータを保持する特定のメソッドを「クライアント」に示す方法はありますか?例えばSwiftクロージャパラメータが保持されていることを示します。
、次のコードを持つ:誰でもこのクラスを使用して、それが実際に保持さかされているかどうかについてどんな考えなしの方法whatever
にクロージャを渡す開始することができ
import Foundation
typealias MyClosureType =() -> Void
final class MyClass {
private var myClosure: MyClosureType?
func whatever(closure: MyClosureType?) {
myClosure = closure
}
}
を。エラーが発生しやすく、メモリリークにつながる可能性があります。例えば
、このような何かをやって、「クライアント」、私はエラーのこのタイプのを防ぐためにどのような方法があるかどうかを知りたい理由はそれ
final class MyDummyClient {
let myInstance = MyClass()
func setUp() {
myInstance.whatever {
self.whateverHandler()
}
}
func whateverHandler() {
print("Hey Jude, don't make it bad")
}
}
を割り当て解除決してされるだろう。私は必要性について、クライアントにヒントを与え、私の方法whatever
の定義に追加できるのparamaterのいくつかのタイプがリーク