@@ -105,7 +105,7 @@ class Process: ObservableObject {
105105 try ? handler. perform ( [ request] )
106106 trace? . stop ( )
107107
108- guard let observations = request. results as? [ VNClassificationObservation ] else {
108+ guard let observations = request. results else {
109109 print ( " Failed to obtain classification results. " )
110110 await updateStatusAsync ( to: . failure( . classify) )
111111 return
@@ -133,7 +133,7 @@ class Process: ObservableObject {
133133 try ? handler. perform ( [ request] )
134134 trace? . stop ( )
135135
136- guard let observation = request. results? . first as? VNSaliencyImageObservation else {
136+ guard let observation = request. results? . first else {
137137 print ( " Failed to generate saliency map. " )
138138 await updateStatusAsync ( to: . failure( . saliencyMap) )
139139 return
@@ -257,11 +257,19 @@ class Process: ObservableObject {
257257 try ? handler. perform ( [ request] )
258258 trace? . stop ( )
259259
260- guard let observations = request. results as? [ VNClassificationObservation ] else {
261- print ( " Failed to obtain classification results. " )
262- updateStatus ( to: . failure( . classify) )
263- return
264- }
260+ #if swift(>=5.5)
261+ guard let observations = request. results else {
262+ print ( " Failed to obtain classification results. " )
263+ updateStatus ( to: . failure( . classify) )
264+ return
265+ }
266+ #else
267+ guard let observations = request. results as? [ VNClassificationObservation ] else {
268+ print ( " Failed to obtain classification results. " )
269+ updateStatus ( to: . failure( . classify) )
270+ return
271+ }
272+ #endif
265273
266274 categories = observations
267275 . filter { $0. hasMinimumRecall ( 0.01 , forPrecision: precision) }
@@ -285,11 +293,19 @@ class Process: ObservableObject {
285293 try ? handler. perform ( [ request] )
286294 trace? . stop ( )
287295
288- guard let observation = request. results? . first as? VNSaliencyImageObservation else {
289- print ( " Failed to generate saliency map. " )
290- updateStatus ( to: . failure( . saliencyMap) )
291- return
292- }
296+ #if swift(>=5.5)
297+ guard let observation = request. results? . first else {
298+ print ( " Failed to generate saliency map. " )
299+ updateStatus ( to: . failure( . saliencyMap) )
300+ return
301+ }
302+ #else
303+ guard let observation = request. results? . first as? VNSaliencyImageObservation else {
304+ print ( " Failed to generate saliency map. " )
305+ updateStatus ( to: . failure( . saliencyMap) )
306+ return
307+ }
308+ #endif
293309
294310 let inputImage = CIImage ( cvPixelBuffer: observation. pixelBuffer)
295311 let scale = Double ( ciImage. extent. height) / Double( inputImage. extent. height)
0 commit comments