我使用ASIHTTPRequest下載要在我的MKMapView中使用的tile。測試下載的任何我下載的代碼到NSData變量中的代碼。 (我的文件平均爲50MB)請注意,這與this未答覆的問題基本相同。使用ASIHTTPRequest在應用程序構建路徑中存儲NSData
我發現,我可以直接下載從我的web服務器文件到文件例如爲:
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:@"/Users/ben/Desktop/my_file.txt"];
對於MapView的我需要一個叫做文件夾這是我的應用程序的構建裏面的文件。
/var/mobile/Applications/887F4691-3B75-448F-9384-31EBF4E3B63E/MyApp.app/Tiles
,我發現,當我叫:它在這個目錄中結束
NSLog(@"%@",[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Tiles"]);
所以我現在要做的是下載這些文件(注意複數)並將它們放在文件夾中。首先,我可以將這些圖像壓縮在一起,稍後在我的設備上提取並放入文件夾,或者我可以單獨下載所有圖像(這似乎更容易,因爲我已經知道所有文件名)
我試過這段代碼,它給了我一個錯誤。在加載圖塊之前,它在我的mapview的viewDidLoad
中。 請注意,它僅用於測試下載代碼,稍後將放置在其他位置以便由按鈕觸發。
下面是代碼:
NSURL *url = [NSURL URLWithString:@"http://...my-website.../25.png"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Tiles"]]; // THE PROBLEMATIC LINE
[request startSynchronous];
NSError *error = [request error];
if(!error)
{
NSLog(@"Loaded Map");
}
else
{
NSLog(@"Error occured while loading map");
NSLog(@"%@",error);
}
而這出現在控制檯:
2011-06-26 21:12:09.651 MyApp[5309:707] Error occured while loading map
2011-06-26 21:12:09.669 MyApp[5309:707] Error Domain=ASIHTTPRequestErrorDomain Code=8 "Failed to delete file at path '/var/mobile/Applications/887F4691-3B75-448F-9384-31EBF4E3B63E/MyApp.app/Tiles'" UserInfo=0x184b20 {NSUnderlyingError=0x1d4ac0 "The operation couldn’t be completed. (Cocoa error 513.)", NSLocalizedDescription=Failed to delete file at path '/var/mobile/Applications/887F4691-3B75-448F-9384-31EBF4E3B63E/MyApp.app/Tiles'}
那麼,如何可以下載的文件存儲在iPhone上的一個目錄在哪裏可以找到並在以後使用它?
感謝您的麻煩。
甜蜜的感謝。我所有的努力和你在一個段落中解決問題!哈哈謝謝你! – LouwHopley