[NSData enumerateByteRangesUsingBlock:] , , , , .
, block ( , ), bytes .
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://httpbin.org/image/png"]];
[data enumerateByteRangesUsingBlock:^(const void *bytes, NSRange byteRange, BOOL *stop) {
NSLog(@"You get the chunk in range: %@", NSStringFromRange(byteRange));
}];
;
NSUInteger length = [data length];
NSUInteger chunkSize = 1024;
NSUInteger chunkOffset = 0;
do {
NSUInteger chunkSize = MIN(length - chunkOffset, chunkSize);
NSData *chunk = [data subdataWithRange:NSMakeRange(chunkOffset, chunkSize)];
chunkOffset = chunkOffset + chunkSize;
} while (chunkOffset < length);