2
NSData * buffer = [fileHandle readDataOfLength:chunkSize];
                while ([buffer length] > 0)
                {
                    [streamBIG writeData:buffer];
                    offset += [buffer length];

                    [fileHandle seekToFileOffset:offset];
                    buffer = [fileHandle readDataOfLength:chunkSize];
                }

我使用这些特定的过程来压缩超过 1 个 25 - 30 MB 的文件,但是这些会增加内存,即实时字节不断增加,直到所有文件都没有被写入,因此我的应用程序崩溃

4

1 回答 1

2

使用自动释放池尝试这样

               NSData * buffer = [fileHandle readDataOfLength:chunkSize];
                while ([buffer length] > 0)
                {
                    @autoreleasepool
                    {
                    [streamBIG writeData:buffer];
                    offset += [buffer length];

                    [fileHandle seekToFileOffset:offset];
                    buffer = [fileHandle readDataOfLength:chunkSize];
                    }
                }

它会工作......

于 2013-03-20T09:08:43.513 回答