[英]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.