IOS 7中的电子邮件地址验证

时间:2014-03-12 07:28:49

标签: ios objective-c validation email

我在我的应用程序中有联系表单,我需要验证电子邮件ID我找到了一些验证电子邮件ID的解决方案,但是当使用验证方法时它显示警告。

@synthesize mail;

电子邮件验证码:

-(BOOL) Emailvalidate:(NSString *)mail
{
    BOOL stricterFilter = YES;
    NSString *stricterFilterString = @"[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}";
    NSString *laxString = @".+@([A-Za-z0-9]+\\.)+[A-Za-z]{2}[A-Za-z]*";
    NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [emailTest evaluateWithObject:mail];
}

在回报中显示警告,如

  

邮件的本地声明隐藏了实例变量。

我使用JSON将所有日期发送到我的服务器,请告诉我如何解决此问题。

4 个答案:

答案 0 :(得分:4)

问题是你有一个局部变量(在你的对象中用@syntensize声明)与你方法中声明的变量同名,试试这个:

-(BOOL) validateEmail:(NSString *)tempMail
 {
     BOOL stricterFilter = YES;
     NSString *stricterFilterString = @"[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}";
     NSString *laxString = @".+@([A-Za-z0-9]+\\.)+[A-Za-z]{2}[A-Za-z]*";
     NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
     NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
     return [emailTest evaluateWithObject:tempMail];
 }

答案 1 :(得分:1)

好吧,您的Emailvalidate方法会使用名为' mail'的参数,而您的班级已经有一个名为' mail'的字段。以及......只需更改邮件即可。参数类似于' newMail' ..

答案 2 :(得分:1)

- (BOOL)validateEmailWithString:(NSString*)checkString {
    BOOL stricterFilter = NO;
    NSString *stricterFilterString = @"[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}";
    NSString *laxString = @".+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*";
    NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [emailTest evaluateWithObject:checkString];
}

答案 3 :(得分:0)

除了cania已经说过的内容之外,这将成为一个很好的类方法而不是实例方法。我会把它变成一个类方法,这样如果你需要验证另一封电子邮件,你的任何类都可以轻松调用它。

然后调用看起来像这样,如果有效的电子邮件则返回true,假设您的mail属性是NSString。

if ([YourClassName Emailvalidate:self.mail]) {
      // valid e-mail, do what you want to do 
} 
else {
      // handle getting an invalid e-mail here 
}