最近在項目中喜歡上了使用block大莫,尤其是在自定義控件的時候啦粹,感覺比代理要方便的多肺樟;
不多說,先上代碼顽聂,
圖1 .h文件中的block定義
圖2 .m文件中的block監(jiān)聽數(shù)據(jù)的變化
1>>typedef void(^YZDeductBlock)(NSString*deductCount);定義一個block類型(此時為void類型)肥惭,YZDeductBlock為block的類型名稱,NSString*deductCount為block監(jiān)聽的參數(shù)類型和參數(shù)名稱紊搪。
2>>@property(nonatomic,copy)YZDeductBlock deductBlock;聲明一個block屬性蜜葱,一定要用copy修飾;deductBlock為屬性block的名稱耀石;
3>>-(void)deductTimesWithBlock:(YZDeductBlock)deductBlock;為聲明的block方法牵囤;
4>>圖2中 //-(void)seletedToDeduct{}和-(void)seletedToCancel是自定義alert上面確定、取消按鈕執(zhí)行的方法;此時block通過確定按鈕的點擊事件揭鳞,來監(jiān)聽并返回alert上某個值的變化炕贵;
5>>圖3為block的使用。具體的原理和結(jié)構(gòu)說明野崇,稍后整理称开。