textField的鍵盤收起
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event
{
[_mailBoxField ? resignFirstResponder];
[_telePhoneField ? resignFirstResponder];
}
Block簡介
Block是一種比較特殊的數(shù)據(jù)類型限寞。它可以保存一段代碼宠漩,在合適的時(shí)候取出來調(diào)用。
Block的修飾
ARC情況下
1.如果用copy修飾Block近上,該Block就會(huì)存儲在堆空間轿秧。則會(huì)對Block的內(nèi)部對象進(jìn)行強(qiáng)引用洛二,導(dǎo)致循環(huán)引用蜀踏。內(nèi)存無法釋放摩渺。
解決方法:
新建一個(gè)指針(__weak typeof(Target) weakTarget = Target )指向Block代碼塊里的對象膘壶,然后用weakTarget進(jìn)行操作错蝴。就可以解決循環(huán)引用問題洲愤。
2.如果用weak修飾Block,該Block就會(huì)存放在椙昝蹋空間丰歌。不會(huì)出現(xiàn)循環(huán)引用問題家肯。
MRC情況下
用copy修飾后袖裕,如果要在Block內(nèi)部使用對象龙宏,則需要進(jìn)行(__block typeof(Target) blockTarget = Target )處理。在Block里面用blockTarget進(jìn)行操作万矾。
Block的定義格式
返回值類型(^block變量名)(形參列表) = ^(形參列表) {
};
調(diào)用Block保存的代碼
block變量名(實(shí)參);
默認(rèn)情況下,Block內(nèi)部不能修改外面的局部變量
Block內(nèi)部可以修改使用__block修飾的局部變量
Block的模式
1.無參數(shù)無返回值的Block
2.有參數(shù)無返回值的Block
3.有參數(shù)有返回值的Block