Ipad 解密250MB PDF文件

Ipad 解密250MB PDF文件,ipad,Ipad,我的X代码项目中有一个250Mb的加密PDF文件,我需要在运行时解密并显示它。由于文件太大,我无法解密。因此,我将原始文件拆分为NSData块,并将它们加密为不同的部分文件。在代码中,我解密这些多个块并将它们写入同一个文件中,然后显示它 NSData *decryptedData = [[NSData alloc] init]; NSString *thepath = [NSString stringWithFormat:@"%@/decryptedfile.%@",[paths o

我的X代码项目中有一个250Mb的加密PDF文件,我需要在运行时解密并显示它。由于文件太大,我无法解密。因此,我将原始文件拆分为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];
NSData*decryptedData=[[NSData alloc]init];
NSString*路径=[NSString stringWithFormat:@“%@/decryptedfile.%@”,[paths objectAtIndex:0],文件类型];
[解密数据写入文件:原子路径:是];
[解密数据发布];
NSFileHandle*myFile=[nsfilehandlefilehandle用于更新路径:路径];
[myFile TruncateFileLeatOffset:0];
对于(intk=1;k尝试调用

[myFile synchronizeFile];

在每次迭代中,这会刷新缓冲区。如果这不起作用,我想你需要在基础下面,并且需要在BSD级别直接使用未缓冲的IO。

没有同步的运气。我将尝试你建议的替代方法,但是我想首先我会尝试看看我是否可以缩小我的文件大小。谢谢输入。