目前我正在进行有关编辑文本字段验证的项目。我有方法验证编辑文本字段的输入(代码如下)。
- (BOOL) validatePhoneNumber: (NSString *) number {
NSString *phoneRegex = @"[0-9]{10}";
NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];
return [phoneTest evaluateWithObject:number];
//[self validatePhoneNumber:yourTextField]
}
然后我还要检查值。但是,我不知道如何从方法中获取值并在if else中进行比较。这个问题是否有任何建议或解决方案。我在XCode中使用Objective-C
。
以下是我的if else代码。
if ([[_tempDict objectForKey:@"Contact 1"] isEqualToString:@""] && [self validatePhoneNumber:[_tempDict objectForKey:@"Contact 1"]] && ![self validatePhoneNumber:[_tempDict objectForKey:@"Contact 2"]]) {
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Invalid"
message:@"Please enter at least one valid contact."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[message show];
return NO;
}
答案 0 :(得分:0)
你似乎正确地做了,但你的if语句没有意义。目前它说:如果联系人1和联系人1是有效的电话号码而联系人2不是有效的电话号码,则显示警报。该if语句的第1部分和第2部分是互斥的,因此您永远不会进入if块,并且永远不会显示警报。
尝试更改
if ([[_tempDict objectForKey:@"Contact 1"] isEqualToString:@""] && [self validatePhoneNumber:[_tempDict objectForKey:@"Contact 1"]] && ![self validatePhoneNumber:[_tempDict objectForKey:@"Contact 2"]])
到
if ([[_tempDict objectForKey:@"Contact 1"] isEqualToString:@""] || (![self validatePhoneNumber:[_tempDict objectForKey:@"Contact 1"]] && ![self validatePhoneNumber:[_tempDict objectForKey:@"Contact 2"]]))