iphone - 使用特定长度的随机字节生成 NSData 对象的最佳方法?

标签 iphone objective-c c nsdata

如果我使用 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/

相关文章:

iphone - Objective-C,协议(protocol)和子类

iphone - 在应用程序委托(delegate)之外注册远程通知

ios - 在 GCD 中,是否保证串行队列中的所有任务都在同一个线程中运行?

c - 在 vim 中为 gtk+-2.0 设置 clang_complete

ios - 可以拖动到 View Controller 中任何位置的 float 按钮?

iphone - iOS 启动屏幕 Assets 目录不起作用

ios - NSArray 到 NSString ....发生一些崩溃

objective-c - 为什么没有适用于 Windows 的 Xcode?

c - 为什么会出现段错误(核心已转储)?

不能在 c 中的结构中声明结构成员