解决NSMutableData appendData性能开销太大的问题
用以下高效方式,原理上是不复制内存:
dispatch_data_t accumulatedData = dispatch_data_empty;
// 假设我们有多个数据块需要合并
 for (NSData *chunk in dataChunks) {
     dispatch_data_t chunkData = dispatch_data_create(chunk.bytes, chunk.length, 
                                                      dispatch_get_global_queue(0, 0), 
                                                      DISPATCH_DATA_DESTRUCTOR_DEFAULT);
     
     // 合并数据,非常高效,不需要复制
     accumulatedData = dispatch_data_create_concat(accumulatedData, chunkData);
     
     // 如果不再需要 chunkData,释放它
     // dispatch_release(chunkData); // 在 ARC 下不需要
 }
// 最后,如果需要 NSData,可以创建一个连续的内存区域
 NSMutableData *finalData = [NSMutableData dataWithLength:0];
 dispatch_data_apply(accumulatedData, ^bool(dispatch_data_t region, size_t offset, const void *buffer, size_t size) {
     [finalData appendBytes:buffer length:size];
     return true;
 });
  
