如果我使用 dataWithBytes:length: 创建一个特定大小的新 NSData 对象,创建随机字符的输入字节(值(value) 20 Mb)的最有效方法是什么,最好不要从文件中读取数据?我每次都需要一个特定大小的唯一缓冲区。
谢谢
最佳答案
您可以创建一个 20*2^20b 的 NSData
对象,然后使用 arc4random()
向其附加一个随机的 4 字节整数 20*2^20/4 次.我相信您需要包含 stdlib.h
(通过 Generating random numbers in Objective-C )。
#include <stdlib.h>
-(NSData*)create20mbRandomNSData
{
int twentyMb = 20971520;
NSMutableData* theData = [NSMutableData dataWithCapacity:twentyMb];
for( unsigned int i = 0 ; i < twentyMb/4 ; ++i )
{
u_int32_t randomBits = arc4random();
[theData appendBytes:(void*)&randomBits length:4];
}
return theData;
}
关于iphone - 使用特定长度的随机字节生成 NSData 对象的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4917968/