Swift UI и Alamofire Загрузка изображений - PullRequest
0 голосов
/ 10 апреля 2020

Я новичок в Swift и решил попробовать Alamofire для работы в сети в моем проекте. Я проверил много руководств в Интернете, но большинство из них устарели и используют UIImage вместо Swift UI Image type.

Вот мой код:

@State var image: Image? = nil

.. ..

AF.upload(multipartFormData: { multipartFormData in
                multipartFormData.append(Data(self.name.utf8), withName: "name")
                multipartFormData.append(Data(self.price.utf8), withName: "price")
                multipartFormData.append(Data(self.image!), withName: "image")
            }, to: upload_url, headers: headers)

                .responseDecodable(of: WishModel.self) { response in
                    debugPrint(response)
                }

Видимо, структура данных от Alamofire не поддерживает этот тип.

Cannot invoke initializer for type 'Data' with an argument list of type '(Image)'

Кроме того, я не смог найти какие-либо методы, которые могут конвертировать Изображение в тип Base64. Это единственный способ решить эту проблему, чтобы заменить все экземпляры Image в UIImage?

1 Ответ

1 голос
/ 10 апреля 2020

Попробуйте преобразовать объект Image в UIImage объект, и вы можете сделать это, создав UIImage из самого Data.

Теперь, если вы хотите получить Data из режима просмотра изображений вы не получаете его от самого Image, но из того же места Image получил его. Например, если вы загружаете изображение с помощью объекта uiImage, вы должны go к этому объекту uiImage. Если представление получило изображение из имени файла, вы должны go получить его из файла. Вы никогда не сможете опрашивать Image для его двоичного файла, это не тот способ, которым спроектирован фреймворк.

...