做了大半年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...