@@ -143,9 +143,9 @@ class FaceLivenessDetectionViewModel: ObservableObject {
143143
144144 @objc func willResignActive( _ notification: Notification ) {
145145 guard self . livenessState. state != . initial else { return }
146- DispatchQueue . main. async {
147- self . stopRecording ( )
148- self . livenessState. unrecoverableStateEncountered ( . viewResignation)
146+ DispatchQueue . main. async { [ weak self ] in
147+ self ? . stopRecording ( )
148+ self ? . livenessState. unrecoverableStateEncountered ( . viewResignation)
149149 }
150150 }
151151
@@ -160,12 +160,13 @@ class FaceLivenessDetectionViewModel: ObservableObject {
160160 func configureCamera( withinFrame frame: CGRect ) -> CALayer ? {
161161 do {
162162 let avLayer = try captureSession? . configureCamera ( frame: frame)
163- DispatchQueue . main. async {
164- self . livenessState. checkIsFacePrepared ( )
163+ DispatchQueue . main. async { [ weak self ] in
164+ self ? . livenessState. checkIsFacePrepared ( )
165165 }
166166 return avLayer
167167 } catch {
168- DispatchQueue . main. async {
168+ DispatchQueue . main. async { [ weak self] in
169+ guard let self else { return }
169170 self . livenessState. unrecoverableStateEncountered (
170171 self . generateLivenessError ( from: error)
171172 )
@@ -203,8 +204,8 @@ class FaceLivenessDetectionViewModel: ObservableObject {
203204 )
204205
205206 livenessViewControllerDelegate? . drawOvalInCanvas ( normalizedOvalRect)
206- DispatchQueue . main. async {
207- self . livenessState. ovalDisplayed ( )
207+ DispatchQueue . main. async { [ weak self ] in
208+ self ? . livenessState. ovalDisplayed ( )
208209 onComplete ( )
209210 }
210211 ovalRect = normalizedOvalRect
@@ -230,8 +231,8 @@ class FaceLivenessDetectionViewModel: ObservableObject {
230231 preCheckViewEnabled: isPreviewScreenEnabled)
231232 )
232233 } catch {
233- DispatchQueue . main. async {
234- self . livenessState. unrecoverableStateEncountered ( . couldNotOpenStream)
234+ DispatchQueue . main. async { [ weak self ] in
235+ self ? . livenessState. unrecoverableStateEncountered ( . couldNotOpenStream)
235236 }
236237 }
237238 }
@@ -253,8 +254,8 @@ class FaceLivenessDetectionViewModel: ObservableObject {
253254 eventDate: { . init( ) }
254255 )
255256 } catch {
256- DispatchQueue . main. async {
257- self . livenessState. unrecoverableStateEncountered ( . unknown)
257+ DispatchQueue . main. async { [ weak self ] in
258+ self ? . livenessState. unrecoverableStateEncountered ( . unknown)
258259 }
259260 }
260261 }
@@ -297,8 +298,8 @@ class FaceLivenessDetectionViewModel: ObservableObject {
297298 eventDate: { . init( ) }
298299 )
299300 } catch {
300- DispatchQueue . main. async {
301- self . livenessState. unrecoverableStateEncountered ( . unknown)
301+ DispatchQueue . main. async { [ weak self ] in
302+ self ? . livenessState. unrecoverableStateEncountered ( . unknown)
302303 }
303304 }
304305 }
@@ -337,8 +338,8 @@ class FaceLivenessDetectionViewModel: ObservableObject {
337338 hasSentFinalVideoEvent = true
338339
339340 } catch {
340- DispatchQueue . main. async {
341- self . livenessState. unrecoverableStateEncountered ( . unknown)
341+ DispatchQueue . main. async { [ weak self ] in
342+ self ? . livenessState. unrecoverableStateEncountered ( . unknown)
342343 }
343344 }
344345 }
@@ -355,14 +356,14 @@ class FaceLivenessDetectionViewModel: ObservableObject {
355356 }
356357
357358 func handleFreshnessComplete( ) {
358- DispatchQueue . main. async {
359- self . livenessState. completedDisplayingFreshness ( )
359+ DispatchQueue . main. async { [ weak self ] in
360+ self ? . livenessState. completedDisplayingFreshness ( )
360361 }
361362 }
362363
363364 func completeNoLightCheck( ) {
364- DispatchQueue . main. async {
365- self . livenessState. completedNoLightCheck ( )
365+ DispatchQueue . main. async { [ weak self ] in
366+ self ? . livenessState. completedNoLightCheck ( )
366367 }
367368 }
368369
@@ -379,8 +380,8 @@ class FaceLivenessDetectionViewModel: ObservableObject {
379380 eventDate: { eventDate }
380381 )
381382 } catch {
382- DispatchQueue . main. async {
383- self . livenessState. unrecoverableStateEncountered ( . unknown)
383+ DispatchQueue . main. async { [ weak self ] in
384+ self ? . livenessState. unrecoverableStateEncountered ( . unknown)
384385 }
385386 }
386387 }
0 commit comments