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執行完後可繼續使用.