The documentation for
[NSData enumerateByteRangesUsingBlock:]
makes no statement about the order in which the ranges in the NSData will be enumerated. For example, an implementation of this method would conform to the strict letter of its contract if it chose to enumerate the ranges backwards.Is it in fact guaranteed that the block will be called with the ranges presented consecutively, from first to last, providing each byte once and once only and providing earlier bytes before later ones?