В оригинальной версии есть ошибка, но моя позаботится об этом и, надеюсь, не представит новую.Надеюсь, это поможет.
- (NSData *)randomDataWithBytes: (NSUInteger)length {
NSMutableData *mutableData = [NSMutableData dataWithCapacity: length];
for (unsigned int i = 0; i < size; i++) {
NSInteger randomBits = arc4random();
[mutableData appendBytes: (void *) &randomBits length: 1];
} return mutableData;
}
Вот его модульный тест:
NSInteger givenLength = INT16_MAX;
NSData *randomData = [self randomDataWithBytes: givenLength];
STAssertTrue([randomData length] == givenLength,
@"RandomDataWithBytes Failed Expected size %d and got %d",
givenLength, [randomData length]);