我以前做的swift筆記, 之前都是整理在onenote上, 最近想到整理出博客. 也方便自己查找, 可以當做自己的一份文檔.
block是一個數(shù)據(jù)類型
用來存儲代碼段
代碼段有兩個特征:
返回值 參數(shù)
普通的數(shù)據(jù)類型,聲明變量的語法
數(shù)據(jù)類型 變量名;
根據(jù)block要存儲的代碼段的特征不同,聲明block的時候的數(shù)據(jù)類型 也不同
聲明block的語法:
返回值類型 (^變量名)(參數(shù)列表);
block賦值的語法:
變量名 = ^返回值類型(帶參數(shù)名的參數(shù)列表){ };
賦值的時候,返回值類型可以省略.
賦值的時候,如果沒有參數(shù),參數(shù)列表可以省略.
可以在聲明的同時賦值,也可以在聲明之后賦值.
block的調(diào)用
blk()
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
//block blk
//聲明一個返回值為空 沒有參數(shù)的block類型的變量 blk
void (^blk)() = ^void(){
NSLog(@"人生中不知有幾回:心是滿的");
};
blk();
//簡寫
void (^blk1)() = ^{
NSLog(@"人生中第一次:內(nèi)心是滿的");
};
blk1();
//聲明一個返回值為int 沒有參數(shù)的block類型的變量 blk1
int (^blk2)() = ^int(){
return 10;
};
NSLog(@"%d",blk2());
//簡寫
int (^blk3)() = ^{
return 11;
};
NSLog(@"%d",blk3());
//聲明一個返回值為int,有兩個int類型參數(shù)的block類型的變量 blk2
int (^blk4)(int, int) = ^int(int a,int b){
return a + b;
};
NSLog(@"%d",blk4(1,2));
//聲明一個無返回值,有一個int類型參數(shù)的block類型的變量 blk3
void (^blk5)(int) = ^void(int a){
NSLog(@"a * a = %d", a * a);
};
blk5(5);
return 0;
}