首先,NSDataIS您的 PDF,目前无需转换为其他数据类型或使用库来操作它。
现在,只需将 NSData 保存到 iOS 上的文档目录中,它不是像 CoreData 或 Realm 这样的托管持久存储,也不是 UserDefaults。这是一个文件夹,里面有东西。
保存到文档文件夹:
let data = //the stuff from your web request or other method of getting pdf
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
let filePath = "\(documentsPath)/myCoolPDF.pdf"
data.writeToFile(filePath, atomically: true)
现在验证该文件是否存在并在您的 Mac 上打开它。这是为了确保您保存的是实际的 PDF,而不是其他任何内容。这是一个两步过程。首先通过从 iOS 模拟器打印文档文件夹的位置来找出文件到底去了哪里:
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentsDirectory = paths[0]
print(documentsDirectory)
现在复制那个很长的文件路径并cd [paste location]
在航站楼去那里,然后open myCoolPDF.pdf
在预览中打开它!这是神奇的时代!
现在您已经确认您正在处理一个实际的 PDF,是时候在 WebView 中显示它了,因为它非常简单,除非您有自己的方法。
请注意,您仍然需要使 Web 视图显示出来,将其拖到 Storyboard 中的 viewController 上并为其创建一个 IBOutlet。
let url = NSURL(fileURLWithPath: filePath)
let webView = UIWebView()
webView.loadRequest(NSURLRequest(URL: url))
显然,这是确保您掌握基础知识的快速方法,您不想使用不安全的方式强制展开!
.