Процесс визуализации изображения возвращает ноль ML Kit Firebase

Я пытаюсь создать приложение для распознавания текста в iOS с помощью Firebase ML Kit. Я пробовал следовать некоторым руководствам, но безуспешно. Я продолжаю получать следующую ошибку в указанной строке (return self.result):

Поток 1: Неустранимая ошибка: неожиданно обнаружен ноль при неявном развертывании необязательного значения

Я все еще новичок в Swift/xcode и firebase, поэтому любая помощь будет принята с благодарностью!

var result: VisionText!

    var textRecognizer: VisionTextRecognizer!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        let vision = Vision.vision()
        textRecognizer = vision.cloudTextRecognizer()
        
        imageResult.image = UIImage(named: "sampletext")
        
        print(textRecognition(image: imageResult.image!))
        
        textResult.text += scantext
    }
    
    
    func textRecognition(image: UIImage) -> VisionText{
        
        let visionImage = VisionImage(image: image)
        textRecognizer.process(visionImage) { (result, error) in guard error == nil, case self.result =  result else {
            print("oops")

            return
        }
        print("oops")
        }
        return self.result \\ ERROR

    }

РЕДАКТИРОВАТЬ

Я убедился, что реализовал правильный способ развернуть необязательный файл. Моя проблема в том, что процесс Firebase MLVision ничего не возвращает, результат равен нулю. Не уверен, что неправильно использую метод. Вот мой обновленный код с небольшими изменениями.

var scannedresult: VisionText!

    var textRecognizer: VisionTextRecognizer!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        let vision = Vision.vision()
        textRecognizer = vision.cloudTextRecognizer()
        
        imageResult.image = UIImage(named: "sampletext")
        print("oops")
        print(textRecognition(image: imageResult.image!))
        
//        textResult.text += scannedresult.text
    }
    
    
    func textRecognition(image: UIImage) {
        
        let visionImage = VisionImage(image: image)
        textRecognizer.process(visionImage) { (result, error) in guard error == nil, let result = result else { print("oops")
            return }
            
            self.scannedresult = result
        }
    }

1 ответ

"Неустранимая ошибка: неожиданно обнаружен nil при неявном развертывании необязательного значения"

^ Эта ошибка возникает, когда вы пытаетесь получить доступ к значению переменной option, и значение равно нулю. Вы должны безопасно его развернуть. Есть пять способов развернуть необязательный файл. Это мой предпочтительный способ:

guard let result = self.result else { return }
return result

оператор guard заставит ваш код пропустить следующие строки в блоке, если в результате нет значения или NIL.

Вот краткое описание всех способов распаковать ваши опции с примерами.

Другие вопросы по тегам