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;