这是我的 ObjC epub 文件加密器代码的主要部分
@autoreleasepool {
for(NSMutableString* epub in self.epubs){
bookKey = [[NSMutableString alloc] initWithString:[self genRandStringLength:16]];
[self performSelectorOnMainThread:@selector(encrypt:) withObject:[NSArray arrayWithObjects:epub,bookKey,nil] waitUntilDone:YES];
}
}
选择器“加密”包括这些方法调用
- 为 epub 提取创建文件夹
- 解压 epub 文件并将内容文件放入解压文件夹
- 为加密的 epub 创建 ZipFile
- 读取提取文件夹中的每个文件,创建 ZipWriteStream 并加密文件数据
- 将每个加密数据流写入 ZipFile
- 关闭 ZipFile 并将 zip 扩展名更改为 .epub
刚开始时,该过程非常安静。但是随着更多文件的写入,这个过程变得越来越慢。很抱歉,由于我的公司保密政策,我无法公开选择器的定义。但我很确定问题不在于它。下面是控制台日志示例。实际上这些文件只是具有不同名称的同一文件的克隆
- Epub 名称:A.epub
- 书号:4151FDD721564E40
- 花费时间:0.440156
- Epub 名称:B.epub
- 图书密钥:BC23C09C4625429E
- 花费时间:0.675541
- Epub 名称:C.epub
- 书号:AF872798FAEA4EDE
- 花费时间:0.974213
- Epub 名称:D.epub
- 书号:250C319928E54D2C
- 花费时间:1.332154
- Epub 名称:E.epub
- 图书密钥:EC4EC65605D246EB
- 花费时间:1.705329
- Epub 名称:F.epub
- 书号:E10588A8CB584ACD
- 花费时间:2.209807
- Epub 名称:G.epub
- 书号:9B572BF9428E4DFB
- 花费时间:2.797980
- Epub 名称:H.epub
- 书号:BC05B2A629C44A85
- 花费时间:3.389614
- 电子版名称:I.epub
- 书号:79DB7AAFC8CA4655
- 花费时间:4.936718
- Epub 名称:J.epub
- 书号:B0413DF2356048A7
- 花费时间:5.441939