arc4random函数 头文件要什么头文件

主题 : 怎么找不到arc4random函数?
级别: 新手上路
UID: 261937
可可豆: 45 CB
威望: 45 点
在线时间: 24(时)
发自: Web Page
来源于&&分类
怎么找不到arc4random函数?&&&
看网上教程生成真随机数都推荐  arc4random,不需要随机数种子。有的说用当前系统时间作种子,可是要求执行时间间隔不超过一秒,但是我想在update里每帧都执行拿系统时间当种子就不灵了,update执行间隔太小每次rand的结果还是差不多,由是想用arc4random,但是就找不到哪个c头文件,请问这个函数要怎么用呀,还是只有object-c才有,windows下有替代的函数吗?
级别: 侠客
UID: 339690
可可豆: 129 CB
威望: 101 点
在线时间: 77(时)
发自: Web Page
回 楼主(qiou2719) 的帖子
首先,种子,整个程序启动的时候,设置一次就足够了!其次,Windows上有rand 和 random,随机数这种东西 我觉得用哪个都差不多
CSDN博客传送门:----------------------------------------------------------------------------------
级别: 新手上路
可可豆: 48 CB
威望: 48 点
在线时间: 47(时)
发自: Web Page
回 1楼(ArcherPeng) 的帖子
建议用cocos2d-x提供的random函数,不用考虑什么平台能用什么平台不能用了,好像是3.4版本才有
关注本帖(如果有新回复会站内信通知您)
4*5+2 正确答案:22
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版1)、arc4random() 比较精确不需要生成随即种子
&&&&&& 使用方法 :
&&&&&&&&&&&&&&&& 通过arc4random() 获取0到x-1之间的整数的代码如下:
&&&&&&&&&&&&&&&& int&value&=&arc4random()&%&x;&
&&&&&&&&&&&&&&&& 获取1到x之间的整数的代码如下:
&&&&&&&&&&&&&&& &int&value&=&(arc4random()&%&x)&+&1;&
&&&&&& 2)、CCRANDOM_0_1() cocos2d中使用 ,范围是[0,1]
&&&&&& 使用方法:
&&&&&&&&&&&&&&&& float random = CCRANDOM_0_1() * 5; //[0,5]&& CCRANDOM_0_1() 取值范围是[0,1]
&&&&&& 3)、random() 需要初始化时设置种子
&&&&& 使用方法:
&&&&&&&&&&&&&&& srandom((unsigned int)time(time_t *)NULL); //初始化时,设置下种子就好了。
rand()实际并不是一个真正的伪随机数发生器,random()会相对好点,但也不算理想。幸运的是iPhone上还有其他的选择。个人来说我首选arc4random() ,原因就是它是一个真正的伪随机算法,而且范围是rand()的两倍。
-(float)randomFloatBetween:(float)num1 andLargerFloat:(float)num2{& & int startVal = num1*10000;& & int endVal = num2*10000; & & int randomValue = startVal +(arc4random()%(endVal - startVal));& & float a = randomValue;& & return(a /10000.0);}
在一些产品的源代码中,经常会发现有这样的语句,
srand(unsigned(time(NULL)));
为什么要这样做呢,其实很简单。
1.& time()函数表示返回 00:00:00 到当前时间的秒数,而time(NULL)表示获取一个时间,准确的说,获取一个指针的地址。
2.& srand()函数是产生随机数种子的。在产生随机数 rand()被调用的时候,他会查看:如果用户之前调用过 srand(seed)的话,他会重新调用一遍 srand(seed)以产生随机数种子;如果发现没有调用过 srand(seed)的话,会自动调用 srand(1)一次。所以,如果希望rand()每次调用产生的值都不一样,就需要每次调用srand(seed)一次,而且seed不能相同。
综合上述两点,那就很明了了。
srand(unsigned(time(NULL)))表示产生随机数种子以保证rand()调用的时候不会出现重复的随机值。
阅读(...) 评论()摘要: 转载请注明出处,希望多多交流,谢谢!Xcode 证书生成、设置、应用,与大家分享。如果按下面步骤还不能编译成功,我手把手教你。开发环境:Mac OS lion 10.7.4XCode 4.3.31 点击钥匙图标2 在菜单栏中依次选择:钥匙串访问?偏好设置?证书选项卡,下面两项全部选关闭3 生成证书请求:钥匙串访问?证书助理?从证书颁发机构请求证书4 输入两个电子邮件地址和常用名称。电子邮件地址是你注册AppleID。a) 常用名称输入你在苹果网站注册的名称,其它名称没试过,不知道行不行。b) 选择“存储到磁盘”。保存后的名称应该为:CertificateSigningRequest.certS
19:18 妙笔 阅读(10899) 评论(2)
摘要: 转:http://blog.csdn.net/jinglijun/article/details/7292674-(void)getIOSVersion{//#if __IPHONE_OS_VERSION_MAX_ALLOWED &= 50000 //此方法和编译器相关//quanju.iOSVersion=1;//#endiffloat version = [[[UIDevice currentDevice] systemVersion] floatValue]; if (version &= 5.0) { quanju.iOSVersion=1;//定义全局变量标记ios版本}
16:33 妙笔 阅读(344) 评论(0)
摘要: object-c有三种property accessors:assign,retain,copy,这里分别说明三种属性方法的实现和区别。assign:就是简单的赋值。这种方法对于传入的参数,没有做任何处理,无法保证传入的数据不会被release,所以一般的类对象,比如NSString,通常不会选择这种类型的方法。但是非类数据,delegate,子view保存父view的句柄等等通常选择的是这个方法. int,bool之类的数据不必多说。这里说明下delegate为什么通常选择assign作为属性方法。假设有一个table controller上面有一个table,毫无疑问的,controlle
18:11 妙笔 阅读(81) 评论(0)
摘要: Objective-C具有相当多的动态特性,基本的,也是经常被提到和用到的有动态类型(Dynamic typing),动态绑定(Dynamic binding)和动态加载(Dynamic loading)。而我今天与大家分享的就是关于动态加载的一些用法,其他两个想必也是经常用到的,在这也就不多说了。所谓,动态加载,就是在程序运行当中,根据需要动态地加载一些视图,常常用在,游戏等多视图的应用中,当然如果有需要,可以用在任何场景中。动态加载用到的一个类就是NSBundle UIKit Additions Reference对NSBundle的一个扩展。其中只有一个方法:– loadNibNamed
23:43 妙笔 阅读(162) 评论(0)
摘要: 1、NSString转intint a=[@&123& intValue];同样适用于NSDictionary将NSNumber转为int2、switch(statement) statement只支持int char 枚举3,要看模拟器的document目录,要将其显隐On Lion the users/[username]/library is hidden.Usechflags nohidden /users/[username]/libraryin a terminal to display the folder.4,iPhone的状态栏可以设置成半透明, 这是众所
22:45 妙笔 阅读(610) 评论(0)
摘要: sdk5的xcode自带了arc,虽然arc是比gc强大很多,但由于开发的习惯性,还有框架不适应,在arc还没足够稳定和安全以前,暂时还是使用手动alloc和release等。至于如果取消arc,分3步:1、project -& Build settings -&Apple LLVM complier 3.0 - Language-& objective-C Automatic Reference Counting设置为NO;2、修改main.hC代码 @autoreleasepool{returnUIApplicationMain(argc,argv,nil,NSStrin
15:47 妙笔 阅读(28) 评论(0)
摘要: 加载过程加载第一步- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil//根据nib文件实例化UIViewController//这个方法是在controller的类在IB中创建,但是通过Xcode实例化controller的时候用的.//如果你的对象是UIViewControler的子类,那么你必须调用-(id)initWithNibName:(NSString *)nibNameOrNilbundle:(NSBundle*)nibBundleOrN方法去调用NIB文件初始化自身,
00:58 妙笔 阅读(687) 评论(0)
摘要: 转:http://blog.csdn.net/sanpintian/article/details/8139878Core Foundation 框架Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能。下面列举该框架支持进行管理的数据以及可提供的服务:群体数据类型 (数组、集合等)程序包字符串管理日期和时间管理原始数据块管理偏好管理URL及数据流操作线程和RunLoop端口和soket通讯Core Foundation框架和Foundation框架紧密相关,它们为相同功能提供接口,但Foun
22:00 妙笔 阅读(59) 评论(0)
摘要: iOS 推送证书制作(JAVA/PHP)4人收藏此文章,我要收藏发表于7天前( 15:57) , 已有104次阅读 ,共0个评论在使用Java或者PHP制作iOS推送服务器的时候,需要自己从开发者网站上导出的aps_developer_identity证书和Apple Development Push Services证书进行合成,生成可以供Java使用的p12证书或供PHP使用的pem证书。aps_developer_identity证书和Apple Development Push Services证书的申请过程可以参考:/h
17:15 妙笔 阅读(82) 评论(0) &
摘要: atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。 atomic 设置成员变量的@property属性时,默认为atomic,提供多线程安全。 在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。加了atomic,setter函数会变成下面这样: {lock} if (property != newValue) { [property release]; property = [newValue retain]; ...
13:33 妙笔 阅读(29) 评论(0)
摘要: //功能:获取字符串的UTF8编码//参数:好友名//参数:返回账户名的字符串//备注:11/3 lilin添加-(NSString*)EncodeUTF8Str:(NSString*)encodeStr{ CFStringRefnonAlphaNumValidChars =CFSTR(&![ DISCUZ_CODE_1 ]’()*+,-./:;=?@_~&); NSString*preprocessedString = (NSString*)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAlloc..
23:02 妙笔 阅读(67) 评论(0)
摘要: NLS:4: Cannot open message catalog CMDTUX_CAT, set 2, num 4323; check TUXDIR=C:\bea\tuxedo8.1, LANG=Chinese People's Republic of China.936需要配制环境变量:NLSPATH=C:\bea\tuxedo8.1\locale\C
10:56 妙笔 阅读(2013) 评论(0)
摘要: Cocoa中NSString到NSDate的处理Mar 14th, 2012NSDate是NS类库中基础类型之一。随着数字化发展,程序对数据处理量越来越大,我们经常从服务器取得的日期是字符串序列,格式化为正确的date类型是一个不可避免的工作。在Cocoa程序里提供了非常方便的函数和类,但是仍然需要我们了解一些技巧。尤其是当我们的程序面对大量的日期字符串转换的时候,要格外的注意。苹果文档中使用NSDateFormatter类格式化日期字符串,但是以防读者不知道,我这里提一下:它的速度非常慢!!这篇文章介绍如何处理这种情况。- (NSDate *)dateFromString:
21:40 妙笔 阅读(35) 评论(0)
摘要: AsyncImageView.h:#import &UIKit/UIKit.h&@interface AsyncImageView : UIView{ NSURLConnection* NSMutableData*}- (void)loadImageFromURL:(NSURL*)@endAsyncImageView.m:#import &AsyncImageView.h&@implementation AsyncImageView - (id)initWithFrame:(CGRect)frame{ self = [
22:59 妙笔 阅读(2801) 评论(0)
摘要: 转载请注明出处,希望多多交流,谢谢!Xcode 证书生成、设置、应用,与大家分享。如果按下面步骤还不能编译成功,我手把手教你。开发环境:Mac OS lion 10.7.4XCode 4.3.31 点击钥匙图标2 在菜单栏中依次选择:钥匙串访问?偏好设置?证书选项卡,下面两项全部选关闭3 生成证书请求:钥匙串访问?证书助理?从证书颁发机构请求证书4 输入两个电子邮件地址和常用名称。电子邮件地址是你注册AppleID。a) 常用名称输入你在苹果网站注册的名称,其它名称没试过,不知道行不行。b) 选择“存储到磁盘”。保存后的名称应该为:CertificateSigningRequest.certS
19:18 妙笔 阅读(10897) 评论(2)
摘要: 捕捉屏幕截图CALayer实例使用Core Graphics的renderInContext方法可以将视图绘制到图像上下文中以便转化为其他UIImage实例。前提先#import &QuartzCore/QuartzCore.h&+ (UIImage *) imageFromView: (UIView *)theView{ // draw a view's contents into an image context UIGraphicsBeginImageContext(theView.frame.size); CGContextRef context = UIGraph
17:03 妙笔 阅读(214) 评论(0) &
摘要: 测试网络连接BOOL hasIReachability *connectionMonitor = [Reachability reachabilityForInternetConnection];[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(inetAvailabilityChanged:) name: kReachabilityChangedNotification object: connectionMonitor];hasInet = [connec...
10:20 妙笔 阅读(51) 评论(0)
摘要: objective C :大于32767的int型数(RAND_MAX+1=32768)为负数。 Objective-C 没有提供相关的函数生成随机数,不过C供了rand(), srand(), random(), srandom(), arc4random(),randomize()几个函数。要引用头文件#include&stdlib.h& 其中,random()和randomize()函数的使用的方法分别与rand()和srand()函数的使用方法对应类似。 arc4random()不用seedintrand(void);void srand (unsigned int n);
15:36 妙笔 阅读(188) 评论(0)
摘要: 之前写过类似的文章,这篇以做总结,希望能帮助刚上船的兄弟。^_^iPhone系统中的Objective-C的内存管理机制是比较灵活的,即可以拿来像C/C++一样用,也可以加个AutoreleasePool让它升级为半自动化的内存管理语言。当然,也不能拿JAVA虚拟机中的全自动化GC来比?一,引用计数是实例对象的内存回收唯一参考引用计数(retainCount)是Objective-C管理对象引用的唯一依据。调用实例的release方法后,此属性减一,减到为零时对象的dealloc方法被自动调用,进行内存回收操作,也就是说我们永不该手动调用对象的dealloc方法。它的内存管理API老简单老简单
13:35 妙笔 阅读(51) 评论(0)
摘要: 1 //CustomNavigationBar.h 2 @interface UINavigationBar (UINavigationBarCategory) 3 UIImageView *backgroundV 4 - (void)setBackgroundImage:(UIImage*) 5 - (void)insertSubview:(UIView *)view atIndex:(NSInteger) 6 @end
11:48 妙笔 阅读(55) 评论(0)
摘要: 1 //隐藏的方法2 [self.navigationController setNavigationBarHidden:YES animated:YES];3 //防止view乱跳的方法4 self.wantsFullScreenLayout = YES;
11:47 妙笔 阅读(46) 评论(0)IOS开发中的随机数获取
IOS中最方便获取随机数的函数应该是arc4random()
不需要引入任何库或头文件!
下面是.m文件的代码,getRandomNumber函数设置为button按下响应方法,
程序输出0~100的随机数。至于随机数经常用到的地方,和例子就不多说了。
#import "ViewController.h"
@interface ViewController
@implementation
ViewController
-(IBAction)getRandomNumber:(id)sender{
& & int randomNum = arc4random()%100;
& & NSLog(@"随机数为
= %d",randomNum);
(void)viewDidLoad
viewDidLoad];
// Do any additional setup after loading the view, typically from a
(void)viewDidUnload
viewDidUnload];
& // Release any retained subviews of the
main view.
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
& return (interfaceOrientation !=
UIInterfaceOrientationPortraitUpsideDown);
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 arc4random头文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信