MSConversation.insertAttachment 使用通过 SDWebImage 下载的 UIImage

MSConversation.insertAttachment with UIImage downloaded via SDWebImage

我有一个 iMessage 应用程序,它使用 SDWebImage 显示一些远程内容。图像被下载并缓存在磁盘上。选择图像后,我想将其作为普通 UIImage(不是 MSMessage)附加到消息中。

这是我正在使用的代码

    // image is already downloaded
    let cache = SDImageCache.shared()
    let key = remoteImageUrl
    let fileUrlString = cache.defaultCachePath(forKey: key)!
    let fileUrl = URL(string: fileUrlString)!

    // image holds the correct UIImage
    let image = UIImage(contentsOfFile: fileUrlString)

    activeConversation?.insertAttachment(fileUrl, withAlternateFilename: "a funny gif", completionHandler: { (error) in
        // error is nil here
        print("error: \(error)")
    })

消息如下所示

Messages 框架似乎无法在该路径找到图像。

注意:点击发送后,我的 iMessage 应用程序崩溃了 "MobileSMS quit unexpectedly."

我发现我需要使用

let fileUrl = URL(fileURLWithPath: fileUrlString)

希望这对其他人有帮助