簡體   English   中英

如何創建一個將弱自身傳遞到閉包內部的閉包簽名

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM