2010-09-16 82 views
1

如何從網上下載PDF文檔到我的應用程序文檔文件夾?如何從網上下載PDF文檔到我的iPhone應用程序文檔文件夾?

我想在應用程序啓動時從網上抓取PDF版本並在應用程序中使用此版本。它需要被複制到Apps Documents文件夾,以便從那裏使用,直到應用程序再次啓動。很明顯,我需要檢查文檔上的日期戳,看看我們是否需要更新它。也許有辦法檢查PDF元數據的版本號?

回答

3

快速和骯髒的 - 沒有錯誤檢查,並且您將收到沒有很好的回調使用NSURLConnection的及其委託協議(如果你希望收到的錯誤可能是好的,進步等)

// fileURL is an NSURL that points to your pdf file 
NSData *fileData = [NSData dataWithContentsOfURL:fileURL]; 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *localFilename = [(NSString *)[paths objectAtIndex:0] stringByAppendingPathComponent:@"myPDF"]; 

[fileData writeToFile:localFilename atomically:YES]; 
+0

你贏了,因爲它是髒! – 2010-09-17 11:43:47

+0

骯髒不是一個術語,我會用它來選擇正確的做法。無論哪種方式,'dataWithContentsOfURL:'是一個阻塞API,並且會導致您的用戶界面在下載過程中變得無法響應(特別是在帶有合理大小的PDF的EDGE或3G連接上)。當向App Store提交應用時,這可能成爲拒絕的理由。 – Jasarien 2010-09-17 13:26:36

2

看的文檔NSURLConnection

NSURLConnection將讓你做出一個HTTP請求到網絡服務器和下載數據。

您應該實施NSURLConnectionDelegate方法。其中一個重要的是connection:didReceiveData: - 在這裏您應該將接收到的數據附加到已初始化的NSMutableData對象上。

最終,下載完成後,您應該得到connectionDidFinishLoading:回調,並從那裏您可以將下載的數據保存到磁盤。

您可以使用NSSearchPathForDirectoriesInDomains()函數通過傳遞NSDocumentDirectory常量來獲取文檔文件夾的路徑。

最後,要保存數據,您可以使用writeToFile:atomically:方法NSData

+0

我想能夠標記兩個答案都是正確的,因爲他們都是,但我把它給湯姆,因爲它是普通的舊髒!感謝您的反饋意見。欣賞它。 – 2010-09-17 11:43:27

相關問題