Escaping 跳脫符號

範例中,使用兩層的closure,將closure作為callback function,當完成事件時,需要透過callback function將執行結果傳遞至畫面上呈現.

使用時遇到了以下的錯誤訊息.
“Escaping closure captures non-escaping parmeter”

原因是因為callback這個closure的生命週期只在getCustomerConfig中,當結束後,SwiftUI就會將此callback closure釋放.

因此在session!.request的closure中,是不存在callback這個物件.

解決方式,在callback closure宣告時,加入跳脫符號 “@escaping”.

@escaping可讓物件跳脫生命週期,function執行完後可繼續使用.

作者

Nick Lin

發表於

2021-04-13

更新於

2023-01-18

許可協議


評論