Я использую ASIHTTPRequest для загрузки плиток, которые будут использоваться в моем MKMapView.Тестируя код, он загружает все, что я загружаю, в переменную NSData.(Мои файлы занимают в среднем 50 МБ). Обратите внимание, что это практически то же самое, что и этот вопрос без ответа.
Я обнаружил, что могу напрямую загрузить файл с моего веб-сервера в файл, например:
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:@"/Users/ben/Desktop/my_file.txt"];
Для просмотра карты мне нужны файлы в папке с именем Tiles
, которая находится внутри сборки моего приложения.Это заканчивается в этом каталоге:
/ var / mobile / Applications / 887F4691-3B75-448F-9384-31EBF4E3B63E / MyApp.app / Tiles
Который я нашелкогда я позвонил:
NSLog(@"%@",[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Tiles"]);
Теперь я пытаюсь загрузить эти файлы (обратите внимание на множественное число) и поместить их в папку Tiles
.Для начала я могу либо сжать эти изображения вместе для последующего извлечения на моем устройстве и поместить их в папку 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, где я смогу найти его и использовать позже?
Спасибо за беспокойство.