Процесс визуализации изображения возвращает ноль 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.
Вот краткое описание всех способов распаковать ваши опции с примерами.