Присвоить массив в быстром машинном обучении Не удается присвоить значение типа '[[String]]' типу "String?"

Я использую машинное обучение и обнаружение изображений в моем быстром приложении, но вместо того, чтобы печатать результаты в моем textView о том, что модель думает, что изображение может быть, я хочу заменить его на массив, который я создал, но каждый раз, когда я пытаюсь, это выдает мне сообщение об ошибке, говорящее Cannot assign value of type '[[String]]' to type 'String?'

@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var choosePhotoLib: UIButton!
@IBOutlet weak var textView: UITextView!

var graduation = ["Living your Best Life", "Happiness looks good on you","ive been growing the business", "there are things i want in this life, things i gotta do things i want"]

let imagePicker = UIImagePickerController()

override func viewDidLoad() {
    super.viewDidLoad()
    imagePicker.delegate = self
    imagePicker.sourceType = .camera
    imagePicker.allowsEditing = false

}

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    if  let userPickedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
    imageView.image = userPickedImage
        guard let ciimage = CIImage(image: userPickedImage) else {
            fatalError("Could Not Convert To CIImage")
        }
       detect(image: ciimage)
    }


imagePicker.dismiss(animated: true, completion: nil)

}

func detect(image: CIImage) {
    guard let model = try? VNCoreMLModel(for: Inceptionv3__1__1().model) else {
        fatalError("Could Not Load Core ML Model")
    }

    let request = VNCoreMLRequest(model: model) { (request, error) in
        guard let results = request.results as? [VNClassificationObservation] else {
            fatalError("Could Not Get Reuest")
        }
        if let firstResult = results.first {
            if firstResult.identifier.contains("Graduation") {
                self.textView.text = [graduation] WHERE THE ERROR OCCURS

1 ответ

Решение

Если вы просто хотите, чтобы отображался один из выпускных текстов, сделайте следующее:self.textView.text = graduation[0] (0 - первая строка)

если вы хотите все из них, вам придется просмотреть их все

var allTexts = ""
for text in graduation {
    allTexts.append(text)
}
self.textView.text = allTexts

это будет соединять строки друг за другом, если вы хотите, чтобы между ними были пробелы или разрывы строк, вам придется это делать. разрыв строки можно добавить, вставив \n в строке

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