Похоже, вам необходимо строгое указание на textDetector
, в противном случае извещатель освобождается до вызова блока завершения.
Немного изменив код:
var textDetector: VisionTextDetector? // NEW
/// Detects texts on the specified image and draws a frame for them.
func detectTexts() {
// ... truncated ...
textDetector = vision.textDetector() // NEW
let visionImage = VisionImage(image: image)
textDetector?.detect(in: visionImage) { (features, error) in // NEW
// Callback implementation
}
}
Вы также можете развернуть его, чтобы убедиться, что он не равен нулю после его назначения:
guard let textDetector = textDetector else {
print("Error: textDetector is nil.")
return
}
Надеюсь, это поможет!