OC基础知识笔记——block和复制

来源:互联网 发布:h3c vlan加端口 编辑:程序博客网 时间:2024/06/06 11:41
函数只能在方法外定义,block可以在方法内定义,也可以在方法外。

block也有返回值和参数。

无返回值无参数
void(^testBlock)(){
     NSLog();
}

无返回值 有参数
void(^testBlock)(int){
     NSLog();
}

有返回值,有参数(该例子是两个参数)
int(^testBlock)(int, int)= ^(int, int){

     return …;
}
调用: int result = testBlock(2,3);    //调用方法和函数一样

作为方法参数

[selftestWithBlock:^{

        NSLog(@"3333333");    }];
  • -(void)testWithBl:(int(^)(int,int))block {
        block(5,6);}  //右边那堆复杂的括号,是参数类型, block是参数名
block可以重定义
typedef void (^mtestblock)();


复制:
有一个对象dataArray, 执行复制操作
dataArray2 = [dataArray mutableCopy]; // 产生dataArray的可变副本,dataArray可以是不可变的

0 0
原创粉丝点击