2015-09-04 49 views
1

我有数据存储在解析上,我用它来填充一个UITableView作为主视图,并点击一行显示细节(在webview中的PDF文件)。所有这些数据当前存储在解析和使用object.cachepolicy = .NetworkElseCache tableview将加载没有网络从缓存。 PDF只会在有网络连接的情况下才会加载,但是这样的缓存需要用户在脱机使用之前先对每个文件进行物理访问。有没有办法缓存类中的所有内容(字符串和PDF文件),以便在应用程序首次打开时下载所有内容,而不是每次选择行。这是怎么了加载web视图使用Parse加载和缓存数组或PDF文件加载到WebView - Swift

  let url = NSURL (string: urlfile.url!); 
    let requestObj = NSURLRequest(URL: url!); 
    webview.loadRequest(requestObj); 

凡字符串(https://开头等),所以它是指向一个在线来源,但只缓存被点击时它。希望这一切都合情合理!

回答

1

如果我的理解正确,您希望马上下载与tableview数据相关的所有PDF,而不是等待用户选择一个单独的行,然后尝试访问其各自的PDF并提取if必要。

要实现这一点,您可以使用相同的缓存策略在本地使用PFFiles存储PDF数据,并在数据为零(例如第一次使用)时抓取它们。只要将PFFile网址属性关联到您的PDF网址,并在您的桌面视图出现后立即在后台获取它们。

如果用户使用wifi,您很可能只想执行此操作,因为它可能需要通过蜂窝网络下载大量数据。

+0

感谢您的回复。我无法解决这个问题!是的,你是对的我想在不需要网络的情况下打开桌面视图,将整个PDF表格加载到缓存中。我将它们作为PFFiles存储在MainViewController'self.pdfArray.append(objectIDs [i] .valueForKey(“PDFFile”)as!PFFile)'上,但我可以用它来加载pdf的唯一方法是调用url因此指向需要连接的https:// url ...(我应该在最初的问题中在代码上方添加'var urlfile = PFFile()') – Tom

+0

PFFiles会自动为您缓存它们的数据。关联到你在Parse上创建的某个类,当你的包含表数据的类对象的查询完成时,使用这些对象在每个对象的PFFile上调用getDataInBackground(PDF) – Russell

+0

完美,它没有任何意义对于PFFile纯粹包含一个URL并在第一页上查询它是下载所有内容,我只是没有获取数据并将其放入webview中。'let data = urlfile.getData() webview.loadData (数据,MIMEType:“appl ication/pdf“,textEncodingName:nil,baseURL:nil)'完成。感谢您的帮助 – Tom