OC基础:block.字面量

来源:互联网 发布:颓废 知乎 编辑:程序博客网 时间:2024/05/17 04:35

block 块语法,可以用block去保存一段代码,或者封装一段代码.

block 实际是由c语言实现的,执行效率很高.

block 实际借鉴了函数指针的语法.


block

(^)(参数类型1 参数名1,参数类型2 参数名2...);

返回值类型  (^)();

1.没有参数,括号也不能省略

2.参数名可以省略


void(^myBlock1)();   无参数无返回值

void(^myBlock2)(int a,int b);   有参数无返回值

int(^myBlock3)();    无参数有返回值

int(^myBlock4)(int a,int b);   有参数有返回值


block实现

格式:

^(参数类型1 参数名1,参数类型2 参数名2....){

执行代码

};

注意{ }外面需要加;


如:myBlock1=^(){

NSLog(@"吃糖吗?");

};


block调用

myBlock1();


起别名:typedef int(^BLOCK)(int ,int );   


block定义时,block块中的代码不执行,调用block的时候block块中的代码才执行.block是c语言中的函数的一种拓展.


block块内部访问变量

1.全局变量block可以直接使用,不需要加_block修饰

2.局部变量需要加__block修饰,才能在block块内部修改

3.局部变量不加__block修饰,只能使用(看),无法修改


-----------------------------------------------------------------------------------

字面量:便利的表示方法

NSNumber *number1=@100;

NSArray *array1=@[@"1",@"2",@"3"];

NSMutableArray *mArray=@[@"1",@"2",@"3"].mutableCopy;

//字典的字面量

//    :前是key   :后是value

    NSDictionary *dict=@{@"a":@"1",@"b":@"2",@"c":@"3"};

 NSMutableDictionary *mDict=@{@"a":@"1",@"b":@"2",@"c":@"3"}.mutableCopy;




0 0
原创粉丝点击