Невозможно преобразовать значение типа 'String' в ожидаемый тип аргумента 'URL'

Я пытаюсь осуществить размещение изображения в Instagram в моем приложении iOS. Я использовал код в этом сообщении.

Сообщение UIImage to Instagram с помощью Swift, похожее на SLComposeViewController

Мне нужно изменить строку:

UIImageJPEGRepresentation(imageInstagram, 1.0)!.writeToFile(jpgPath, atomically: true)

чтобы:

UIImageJPEGRepresentation(imageInstagram, 1.0)!.write(jpgPath, options: true)

для Swift 3, но затем я получаю сообщение об ошибке:

Невозможно преобразовать значение типа 'String' в ожидаемый тип аргумента 'URL'

Кто-нибудь знает, как это исправить?

Благодарю.

-4
источник поделиться
2 ответа

Попробуй это.

let jpegData = UIImageJPEGRepresentation(imageInstagram, 1.0)

Поскольку я считаю, что "jpgPath" - это PATH, где вы пытаетесь сохранить изображение.

если нет, то вот пример того, как вы должны создать этот URL-адрес PATH

let jpgPath = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent("instagram.jpg")

do {
    try jpegData.write(to: jpgPath, options: .atomic)
} catch {
    print(error)
}

Если jpgPath является строкой (что в вашем случае), вы можете попробовать это.

do {
    try data.write(to: URL(fileURLWithPath: jpgPath), options: .atomic)
} catch {
    print(error)
}
+1
источник

Вы передаете string качестве аргумента для функции записи, которая является недопустимым аргументом, поскольку функция записи принимает URL как аргумент.

Так что просто замените

UIImageJPEGRepresentation(imageInstagram, 1.0)!.write(jpgPath, options: true)

с этим:

UIImageJPEGRepresentation(imageInstagram, 1.0)!.write(to: URL(fileURLWithPath: jpgPath), options: .atomic)

Для получения более подробной информации посмотрите на это

+1
источник

Связанные вопросы


Похожие вопросы

Посмотрите другие вопросы по меткам или Задайте вопрос