В моем проекте X-Code у меня есть зашифрованный файл PDF размером 250 МБ, который мне нужно расшифровать и отобразить во время выполнения.Поскольку размер файла большой, я не могу его расшифровать.Поэтому я разбил оригинальный файл на куски NSData, зашифровал их в разные файлы деталей.В коде я расшифровываю эти несколько фрагментов и записываю их в один файл, а затем отображаю его.
NSData *decryptedData = [[NSData alloc] init];
NSString *thepath = [NSString stringWithFormat:@"%@/decryptedfile.%@",[paths objectAtIndex:0], fileType];
[decryptedData writeToFile:thepath atomically:YES];
[decryptedData release];
NSFileHandle *myFile = [NSFileHandle fileHandleForUpdatingAtPath:thepath];
[myFile truncateFileAtOffset:0];
for (int k=1; k<50; k++) { //i had 49 parts, hence the condition
NSString *partFilePath = [NSString stringWithFormat:@"%@/%@-part%d.pdf",[paths objectAtIndex:0], [fileName objectAtIndex:i], k];
NSData *tempDData = [[NSData alloc] initWithContentsOfFile:partFilePath];
[myFile writeData:[tempDData AES256DecryptWithKey:@"secretkey"]];
[tempDData release];
}
[myFile closeFile];
У меня было 49 частей, и я расшифровываю их каждую, записывая в один файл.Эта программа отлично работает в симуляторе и может восстановить мой оригинальный PDF.Но на устройстве мое приложение закрывается.Его прерывание происходит, когда цикл for повторяется в 31-й раз и когда я пытаюсь записать мои расшифрованные данные в папку «Документы» приложения.Другими словами, когда я пытаюсь добавить данные размером более 150 МБ, мое приложение закрывается.Есть ли другой способ реализовать эту функцию?