无法转换类型' String'的值预期参数类型' URL'

时间:2016-12-07 06:24:48

标签: ios swift3 xcode8 nsurl

我正在尝试在我的iOS应用中将图片发布到Instagram。我在这篇文章中使用过这段代码。

Post UIImage to Instagram using Swift similar to SLComposeViewController

我需要更改一行:

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

为:

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

对于Swift 3然后我得到错误:

  

无法转换类型'字符串'的值预期参数类型' URL'

有人知道如何解决这个问题吗?

感谢。

2 个答案:

答案 0 :(得分:1)

试试这个。

let jpegData = UIImageJPEGRepresentation(imageInstagram, 1.0)
  

我认为" jpgPath"是您尝试保存图像的路径。

如果没有,那么这里是一个如何创建PATH URL的例子

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 :(得分:1)

您正在将string作为参数传递给write函数,该函数是无效参数,因为write函数将URL作为参数。

所以简单地替换

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

用这个:

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

有关详细信息,请查看this