iOS iOS Block基本用法記錄

2021-09-26 03:03:19 字數 1518 閱讀 5856

做了大半年ios,每次想寫block的時候都發現不記得格式,總要翻一翻老**然後copy乙份,然而並不能記住,惡性迴圈影響工作效率。

參考: 記錄一下block的基本用法,目標是流利的寫出乙個個block。

nsstring *(^myblock)(int);
原型宣告分三部分,格式可以總結為:

返回型別(^block名)(引數型別 [引數名可選]);
個人比較常使用的場景為屬性宣告,比如:

@property(nonatomic, copy)void(^dismissblock)(void);

@property(nonatomic, copy)void(^dismissblock2)(uiview *view);

block定義的基本使用:

void (^logblock)(nsstring *)=^(nsstring *paramstr);
定義的格式:

^(引數型別 [引數名 可選]);
稍微延伸記錄一下(屬性關鍵字也是很不熟悉的一點)

屬性copy關鍵字是深拷貝:

1.這個屬性被賦值的時候,都會轉換成不可變的型別;

2.拷貝物件的時候需要重寫copywithzone:方法。

在方法宣告中:

- (void)getmyblock:(void(^)(int aa,int bb))myblock;
格式:

- (方法返回型別)方法名:(返回型別(^)(引數型別 [引數名 可選]))block名 方法名:其他引數;
在方法定義中:

- (void)getmyblock:(void(^)(int aa,int bb))myblock

格式和宣告相同

在方法呼叫中:

[self getmyblock:^(int aa,int bb)];
格式:

[方法呼叫物件 方法名:其他引數 方法名:^(引數型別 [引數名 可選])];
主要目的是方便**閱讀,記錄一下**語法

typedef 返回型別(^block名)(引數型別 [引數名可選]);
一般會這樣用,簡化作為原型宣告和作為方法引數時的語法:

typedef void(^myblock)(void);

@property(nonatomic, copy) myblock myblock;

-(void)method:(myblock)myblock;

-(void)method:(myblock)mybloc

;

python基本用法 Python基本用法總結

python 的設計具有很強的可讀性,易於使用。這裡對python基本用法做乙個總結介紹。一 變數型別 1 變數賦值 python中的變數賦值不需要型別宣告,每個變數在使用前都必須賦值,變數賦值之後才會被建立。使用等號進行變數的賦值。2 多個變數賦值 為多個變數賦值時或進行列表內資料的交換時,可以使...

mysql 的基本用法 mysql基本用法

mysql 5.1 中文參考手冊 show databases 顯示資料庫 drop database 資料庫名 刪除資料庫 set names utf8 設定資料庫編碼為utf 8 source x 資料庫名.sql 匯入乙個資料庫 use 資料庫名 嘗試訪問資料庫 create database...

mysql 的基本用法 mysql基本用法

mysql 5.1 中文參考手冊 show databases 顯示資料庫 drop database 資料庫名 刪除資料庫 set names utf8 設定資料庫編碼為utf 8 source x 資料庫名.sql 匯入乙個資料庫 use 資料庫名 嘗試訪問資料庫 create database...