[英]How to create a closure signature that passes weak self to inside the closure
我创建了一个名为VerifyObject
的类,该类包含具有以下签名的函数
typealias handlerCodeID = (String) ->Void
typealias handlerCode = (Date, Code) ->Void
typealias handlerError = (NSError) ->Void
class func verifyObject(withID:String?,
runOnEnter: handlerCode?,
runOnExit: handlerCode?,
runOnPause: handlerCodeID?,
runOnError: handlerError?)
当我运行这些runOn...
闭包时,会runOn...
需要在闭包内使用self
引用,捕获self并产生泄漏的情况。
我已经阅读了有关迅速创建weak self
,但是文字太过夸张,以至于我无法回头。
我知道使用objective-c的方法,但是很快就将其视为异端。
如何创建这些类型typealias
或函数签名,或将弱自身传递到这4个闭包中的任何东西。
请解释一下我今年5岁。 好,做4。
谢谢。
调用handleCodeID
您可以传递weak self
以便删除任何强引用循环。
因此,当您调用verifyObject(...)
,它将类似于...
Self.verifyObject(“someString”, { [weak self] date, code in
//runonenter
},
{ [weak self] date, code in
//runonexit
},
{ [weak self] string in
//runonpause
},
{ [weak self] error in
//runonerrir
})
你可以继续这个
typealias实际上并不包含此内容,它是您在调用指定的typealias或任何闭包时使用的东西
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.