Block的一点优点为可以省略回调函数,简化代码今天我就应用了以下。
以下是代码片段。
_testTextField1=[[MyTextField alloc] init]; [self.view addSubview:_testTextField1]; [_testTextField1 release]; _testTextField1.obj=self; _testTextField1.textField.placeholder=@"小于5的字符判断"; _testTextField1.textField.font=[UIFont systemFontOfSize:14]; _testTextField1.myConditionBlock=^(NSString * str){//加入你要判断或者赋值的语句 if(str.length<=5) { return YES; } return NO;}; _testTextField1.myAlertBolck=^(id obj){ [_testTextField1.textField resignFirstResponder]; UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"test" message:@"请输入小于5的字符串" delegate:obj cancelButtonTitle:@"确定" otherButtonTitles: nil]; [alertView show]; [alertView release ]; };
这样可以把判断条件和触发事件分开,并且放在一个实例里面。并且可以把两个实例相关联。使用起来较为方便。
以下是代码的下载地址:http://download.csdn.net/detail/matrixhero/4645105