Разархивирование файла на устройстве происходит сбой из-за тайм-аута - PullRequest
0 голосов
/ 12 июля 2011

Я пытаюсь распаковать файл, который загружается через URL.Загруженный файл в формате zip.Я использовал библиотеку: Код распаковки iPhone с библиотекой SSZipArchive.Он используется в текущем коде для распаковки файла после загрузки.Но когда я запускаю приложение как отдельное приложение, происходит сбой, выдавая ошибки журнала: example.app не удалось запустить вовремя.Я не уверен, что могу использовать эту библиотеку или есть какая-либо другая библиотека, которая была опробована, протестирована и запущена на устройстве.

- (void)viewDidLoad {
   [super viewDidLoad];

    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *directoryPath = [paths objectAtIndex:0];
    NSString *filePath = [NSString stringWithFormat:@"%@/ZipFiles.zip", directoryPath];

    NSString* updateURL = @"http://www.example.com/test.php?id=11";
    NSData* updateData = [NSData dataWithContentsOfURL: [NSURL URLWithString: updateURL] ];

    [fileManager createFileAtPath:filePath contents:updateData attributes:nil];
    /* SSZipArchive is a free API built on ZipArchive to unzip the files. Header file is passed in this class.*/

    [SSZipArchive unzipFileAtPath:filePath toDestination:directoryPath];
    NSLog(@"Finished unzipping database");
 }

1 Ответ

0 голосов
/ 12 июля 2011

Метод viewDidLoad вызывается из основного потока приложения, и поскольку операции загрузки и распаковки занимают значительное количество времени, он замораживает основной поток.Вот почему вы видите эту ошибку.

Необходимо переместить длительные операции в фоновый поток, чтобы основной поток мог завершить загрузку приложения.Есть много способов сделать это, и я предпочитаю использовать блоки.

Я предлагаю вам прочитать Руководство по программированию параллелизма в документах:

http://developer.apple.com/library/ios/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008091

...