Почему я не могу найти одно и то же ключевое слово более одного раза в Swift? - PullRequest
0 голосов
/ 11 марта 2020

enter image description here

По сути, я использую каркас видения, чтобы найти ключевые слова, которые пользователь ищет в UITextField, но если в данной строке более одного слова, обнаруживает только первое слово. Например, допустим, у меня есть изображение, а текст «in in in in in» будет обнаружен только первый «in», а остальные нет. Только так он обнаружит другие слова, если они находятся на отдельных строках, как на правой стороне изображения. Почему это происходит?

Вот пи c, объясняющий проблему и мой код:

 func detectTextHandler(request: VNRequest, error: Error?) {

    guard let results = request.results as? [VNRecognizedTextObservation] else {
        return
    }

    DispatchQueue.main.async {

    self.previewView.layer.sublayers?.removeSubrange(1...)
        for visionResult in results {
            guard let candidate = visionResult.topCandidates(1).first else {
            continue
        }


            let words = candidate.string.split{ $0.isWhitespace }.map{ String($0)}



               for word in words {
                if let wordRange = candidate.string.range(of: word, options: .caseInsensitive),


               let boxObservation = try? candidate.boundingBox(for: wordRange) {

                    if self.searchTextField.text == word
                        {
                print(word)
                self.highlightLetters(box: boxObservation)//highlights words
          }
        }
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...