Ошибка Swift: «Значение типа« ClassResult »не имеет члена« классификации »

Я разрабатываю Swift 4.0.1 с использованием Xcode 9.1 и пытаюсь контролировать тип данных, отображаемых в консоли отладки, когда запускаю Visual Recognition в своем приложении. Итак, я попытался очистить этот проект, перезапустить Xcode, скопировать и вставить код из загруженного проекта и проверить наличие орфографических ошибок. Я пробовал почти все. Вопросы Stackoverflow о похожих случаях не помогают, потому что это все разные сценарии и более старые быстрые (3 и 2). Я пытался добавить «_» следующим образом: classificationResults.append(classes[index]._classification) как один человек сказал, что это сработало для них, и он все еще показывает ошибку «Значение типа« ClassResult »не имеет члена« классификации ».

Изображение ошибки

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {

        imageView.image = image

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

        let visualRecognition = VisualRecognition(apiKey: apiKey, version: version)

        let imageData = UIImageJPEGRepresentation(image, 0.01)

        let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

        let fileURL = documentsURL.appendingPathComponent("tempImage.jpg")

        try? imageData?.write(to: fileURL, options: [])


        visualRecognition.classify(imagesFile: fileURL, success: { (classifiedImages) in

            let classes = classifiedImages.images.first!.classifiers.first!.classes

            self.classificationResults = []

            for index in 0..<classes.count {
                classificationResults.append(classes[index].classification)
            }
            print(classifiedImages)

            DispatchQueue.main.async {
                self.cameraButton.isEnabled = true
                SVProgressHUD.dismiss()
                self.shareButton.isHidden = false
            }

            if self.classificationResults.contains("hotdog") {
                DispatchQueue.main.async {
                    self.navigationItem.title = "Hotdog!"
                    self.navigationController?.navigationBar.barTintColor = UIColor.green
                    self.navigationController?.navigationBar.isTranslucent = false
                    self.topBarImageView.image = UIImage(named:"hotdog")

                }
            }

            else {
                DispatchQueue.main.async {
                    self.navigationItem.title = "Not Hotdog!"
                    self.navigationController?.navigationBar.barTintColor = UIColor.red
                    self.navigationController?.navigationBar.isTranslucent = false
                    self.topBarImageView.image = UIImage(named:"not-hotdog")
                }

            }

        })


    } else {
        print("There was an error picking the image")
    }[][1]

person Grace    schedule 25.03.2018    source источник
comment
Я предполагаю, что ваша переменная classificationResults имеет тип ClassResult, поэтому было бы полезно, если бы вы включили этот код в свой вопрос.   -  person Jim    schedule 25.03.2018


Ответы (1)


Согласно документам, ClassResult не имеет члена с именем className, но имеет член с именем className.

https://github.com/watson-developer-cloud/swift-sdk/blob/master/Source/VisualRecognitionV3/Models/ClassResult.swift

person Mike Taverne    schedule 25.03.2018
comment
Вставил и ошибка исчезла. Однако теперь консоль отладки вообще ничего не показывает, когда я использую фотографию, как раньше. Относится ли это к чему-то отличному от того, что раньше было классификацией? Потому что я проходил курс (все еще относительно недавний), который работал с классификацией. - person Grace; 25.03.2018