Block
什麼是Block?
Blcok是ios4.0+和Mac OS X 10.6 引進隊C語言的擴展,用來實現匿名函數的特徵
block是C級別的匿名函數塊,和C語言的函數指針很像,在ios4.0之後開始支持block在IOS開發中什麼情況時有block?
在ios開發中什麼情況時有block?
- 1.代碼的封裝
- 2.併發任務的執行
- 3.回調
block 塊語法:
聲明:
返回類型(^代碼塊名)(參數列表)
調用:
代碼塊名=^(參數列表){};
有參數有返回值:
block塊的聲明
int (^Sum)(int n1,int n2,int n3);
block塊的實現
Sum = ^(int n1,int n2,int n3){
int max = n1;
if (n1 < n2)
{
max = n2;
}
if (n2 < n3)
{
max = n3;
}
return max;
};
調用:
int result = Sum(1,2,3);
無法返回值:
block聲明:
void (^jack)(NSString *string);
block的實現:
jack = ^(NSString *string){
NSLog(@"%@",string);
};
調用:
jack(@"Rick");
無返回值和參數列表:
block聲明:
void(^myBlockOne)();
block的實現:
myBlockOne=^()
{
num++;
NSLog(@"num=%d",num);
}
或
void(^myBlockOne)()=^()
{
num++;
NSLog(@"num=%d",num);
}
調用:
myBlockOne();