NSUInteger numberOfMatches = [regex numberOfMatchesInString:input.text options:NSMatchingAnchored range:NSMakeRange(0, input.text.length)];
// 如果没有匹配,就会错误和NO.
if (numberOfMatches == 0) {
if (error != nil) {
// 先判断error对象是存在的
NSString *description = NSLocalizedString(@"验证失败", @"");
NSString *reason = NSLocalizedString(@"输入仅能包含数字", @"");
NSArray *objArray = [NSArray arrayWithObjects:description, reason, nil];
NSArray *keyArray = [NSArray arrayWithObjects:NSLocalizedDescriptionKey, NSLocalizedFailureReasonErrorKey, nil];
NSDictionary *userInfo = [NSDictionary dictionaryWithObjects:objArray forKeys:keyArray];
//错误被关联到定制的错误代码1001和在InputValidator的头文件中。
*error = [NSError errorWithDomain:InputValidationErrorDomain code:1001 userInfo:userInfo];
}
return NO;
}
return YES;
}
@end
现在,我们来编写字母验证的实现,代码如下:
AlphaInputValidator.h中AlphaInputValidator的类定义
复制代码#import "InputValidator.h"
@interface AlphaInputValidator : InputValidator
- (BOOL)validateInput:(UITextField *)input error:(NSError *__autoreleasing *)error;
@end
AlphaInputValidator.m中AlphaInputValidator的实现:
#import "AlphaInputValidator.h"
@implementation AlphaInputValidator
- (BOOL)validateInput:(UITextField *)input error:(NSError *__autoreleasing *)error {










