在 Swift 机器学习中分配数组 无法将 '[[String]]' 类型的值分配给类型 'String?'



我正在我的 swift 应用程序中使用机器学习和图像检测,但没有在模型认为图像可能是什么的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

如果您只想显示毕业典礼中的某个文本,请执行以下操作:self.textView.text = graduation[0](0 是第一行(

如果你想要所有这些,你必须遍历它们。

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

这会将字符串一个接一个地放在一起,如果你想在它们之间使用空格或换行符,你也必须这样做。 可以通过在字符串中放入n来添加换行符

相关内容

最新更新