服务器做视频网站吗,wordpress mip 改造,邓州微网站开发,汝州市建设局网站1、逗号表达式#xff0c;返回整个逗号表达式的返回值是最后一个表达式的返回值#xff0c;长见识了#xff0c;第一次听说#xff0c;比如 int x (a 3, a 4, a 5, a 6);NSLog(x is %d, x);x is 6 2、iOS 有如下三种随机数方法#xff1a; 1#xff09;…1、逗号表达式返回整个逗号表达式的返回值是最后一个表达式的返回值长见识了第一次听说比如 int x (a 3, a 4, a 5, a 6);NSLog(x is %d, x);x is 6 2、iOS 有如下三种随机数方法 1、srand((unsigned)time(0)); //不加这句每次产生的随机数不变int i rand() % 5;2、srandom(time(0));int i random() % 5;3、int i arc4random() % 5 ; 注rand()和random()实际并不是一个真正的伪随机数发生器在使用之前需要先初始化随机种子否则每次生成的随机数一样。 arc4random() 是一个真正的伪随机算法不需要生成随机种子因为第一次调用的时候就会自动生成。而且范围是rand()的两倍。在iPhone中RAND_MAX是0x7fffffff (2147483647)而arc4random()返回的最大值则是 0x100000000 (4294967296)。 精确度比较arc4random() random() rand()。 3、块的基本用法定义如下 ^[块返回值类型](形参类型1 形参1 形参类型2 形参2) { //块执行体 } 1)、定义块必须以^开头 2)、定义块返回值类型一般省略 3)、定义块不需要值名字 4)、块的参数可以是(void) 块变量格式 块返回值类型(^块变量名)(形参类型1, 形参类型2); 一般使用 #import Foundation/Foundation.hint main(int argc, char * argv[]) {autoreleasepool {void (^printStr)(void) ^(void) {NSLog(我在学习oc的块);};printStr();int (^sum)(int, int) ^(int a, int b) {return a b;};NSLog(sum is %d, sum(a, b));void (^print)(NSString) ^(NSString *info) {NSLog(info value is %, info);};print(chenyu);}} 块可以访问局部变量的值但是不许修改因为传递进去的是值不是地址所以不能修改following 下面代码会引起错误 int value 20;void (^print)(void) ^(void) {value 30;NSLog(%d, value);}value 45;print(); 看下面的例子 int value 20;void (^print)(void) ^(void) {NSLog(%d, value);}value 45;print(); 结果打印是20,我们不是修改了成了45吗当程序用块访问局部变量时系统在定义块会把局部变量的值保存在块中而不是等到执行时才去访问获取变量的值如果考虑块要修改局部变量的值我们可以用_block修饰局部变量 _block int value 20;void (^print)(void) ^(void) {//会打印出45NSLog(%d, value);value 40;//会打印出40NSLog(%d, value);}value 45;print();//会打印出40NSLog(%d, value); 用_block作为修饰的时候可以理解为传递指针到块里面去了可以修改地址从而修改值 用typedef定义块变量类型,格式如下 typedef 块返回值类型 (^块变量类型)(形参类型1, 形参类型2) typedef void (^Print)(NSString *); Print print ^(NSString *info){NSLog(%info, info);}print(chenyu); 块有点像C语言里面的函数指针。 测试
typedef int (^Add) (int, int);
typedef void (^Show) (NSString *);
int main(int argc, char * argv[]) {autoreleasepool {void (^pri)(void) ^(void) {NSLog(hello world);};pri();Add add ^(int a, int b) {return a b;};int result add(4, 5);NSLog(4 5 is: %d, result);Show show ^(NSString * info) {NSLog(%, info);};show(chenyu);}
}
结果
hello world4 5 is: 9chenyu