2015-09-25 46 views
-1
func downloadPDF() { 
     // Running operations that takes a long time in a background thread is recommended 
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {() -> Void in 
      // Get the PDF data from the URL 
      let url = self.webview.request?.URL 
      let pdfURL = url?.absoluteString 
      let pdfData = NSData(contentsOfURL: NSURL(string: pdfURL!)!)! 

      // Store the data locally as a PDF file in the Documents directory 
      let documentsDirPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as? String 
      localPdfPath = documentsDirPath.stringByAppendingPathComponent(pdfURL!.lastPathComponent) 
      pdfData.writeToFile(localPdfPath, atomically: true) 

      // UI related stuff should be called in the main thread. 
      dispatch_async(dispatch_get_main_queue(), {() -> Void in 
       self.openIniBooks() 
       self.stopActivityIndicator() 
      }) 
     }) 
    } 

将PDF文件保存到iBooks正常工作,直到升级到xCode7。现在得到一个错误: Downcast from String?为String只有解开自选...这条线:使用xCode7将PDF保存到iBooks问题

let documentsDirPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as? String 

不知道如何解决这个问题。试过:

let documentsDirPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String 

但有新的错误。任何帮助,将不胜感激。

回答

0

试试这个:

let documentsDirPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as String! 
+0

如何实现self.openIniBooks()?谢谢 –

+0

请给你的答案添加一些解释! –