我正在尝试加载一个作为CKAsset存储在publicDatabase中的PDF文件,代码在去年发布的现有应用程序上工作得很好。但是,我现在得到以下错误
无法在强制中将'NSData‘类型的值转换为'Data’类型
这是代码-
if docType == "PDF" || docType == "pdf" {
if let asset1 = record.object(forKey: "documentFile") as? CKAsset {
let doc1Data : NSData? = NSData(contentsOf:asset1.fileURL)
let path = (NSTemporaryDirectory() as NSString).appendingPathComponent(filename)
let fileURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(filename)
do {
try doc1Data!.write(to: URL(fileURLWithPath: path), options: .atomic)
} catch {
print(error)
}
self.docWebView.load(doc1Data! as Data, mimeType: "application/pdf", textEncodingName: "UTF-8", baseURL: NSURL() as URL)
self.filenameURL = [(fileURL)]
}我相信一定有一个简单的解释,但我看不出问题所在
提前谢谢。
发布于 2017-09-06 05:06:16
尝试更改以下行:
let doc1Data : NSData? = NSData(contentsOf:asset1.fileURL)至
let doc1Data = NSData(contentsOf:asset1.fileURL)发布于 2017-09-06 07:03:43
答案似乎很简单,将加载数据更改为loadRequest,并引用从CKAsset获得的文档的URL。
if docType == "PDF" || docType == "pdf" {
if let asset1 = record.object(forKey: "documentFile") as? CKAsset {
let doc1Data : NSData! = NSData(contentsOf:asset1.fileURL)
let path = (NSTemporaryDirectory() as NSString).appendingPathComponent(filename)
do {
try doc1Data!.write(to: URL(fileURLWithPath: path), options: .atomic)
let url = URL(fileURLWithPath: path)
let urlRequest = URLRequest(url: url)
self.docWebView?.loadRequest(urlRequest)
} catch {
print(error)
}
}https://stackoverflow.com/questions/46061553
复制相似问题