2014-03-12 3 views
1

전자 메일 ID의 유효성을 검사해야하는 응용 프로그램의 양식이 있습니다. 전자 메일 ID의 유효성을 검사하기위한 몇 가지 솔루션이 있지만 유효성 검사 방법을 사용할 때 경고가 표시됩니다.IOS 7의 전자 메일 주소 유효성 검사

@synthesize mail; 

이메일 유효성 검사 코드 :

-(BOOL) Emailvalidate:(NSString *)mail 
{ 
    BOOL stricterFilter = YES; 
    NSString *stricterFilterString = @"[A-Z0-9a-z\\._%+-][email protected]([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}"; 
    NSString *laxString = @"[email protected]([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이 문제를 해결하는 방법을 알려주십시오.

+1

문제는 당신이 (있는 NSString *) tempMail – ReeCube

+0

에 (있는 NSString *) 메일을 변경하려고 당신의 방법에서 선언 된 변수와 동일한 이름을 가진 지역 변수 (개체에 선언)을 가지고있다 @ReeCube이 유효성 검사를 메일 문자열에 연결하는 방법을 이제 이름을 변경했습니다 – user3349668

+0

이것은 전역 범위에서 동일한 변수 이름을 선언했기 때문입니다. –

답변

1

글쎄, 당신의 Emailvalidate 메소드는 'mail'이라는 이름의 매개 변수를 사용하고 클래스는 이미 'mail'이라는 필드를 가지고 있습니다. 'mail'매개 변수를 'newMail'과 같이 변경하십시오 ..

4

문제는 당신이 당신의 방법에 선언 된 변수와 동일한 이름의 지역 변수 (@syntensize와 개체에 선언)을 가지고있다,이 시도 :

-(BOOL) validateEmail:(NSString *)tempMail 
{ 
    BOOL stricterFilter = YES; 
    NSString *stricterFilterString = @"[A-Z0-9a-z\\._%+-][email protected]([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}"; 
    NSString *laxString = @"[email protected]([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]; 
} 
+0

내 메일 uitextfield 및 유효성 검사 pls 연결 방법 – user3349668

+0

변경 이벤트를 추가 한 다음 내용이 변경 될 때마다 변경 이벤트에 대해 확인해야합니다. http://stackoverflow.com/questions/7010547/ uitextfield-text-change-event – ReeCube

0

을 또한 무엇 cania 이미 상기 , 이것은 인스턴스 메소드 대신에 좋은 클래스 메소드를 만들 것입니다. 클래스 메쏘드로 만들면 다른 이메일의 유효성을 검사 할 필요가있는 클래스라도 쉽게 호출 할 수 있습니다.

그러면 메일 속성이 NSString이라고 가정하고 유효한 전자 메일 인 경우 true를 반환합니다.

if ([YourClassName Emailvalidate:self.mail]) { 
     // valid e-mail, do what you want to do 
} 
else { 
     // handle getting an invalid e-mail here 
} 
1
- (BOOL)validateEmailWithString:(NSString*)checkString { 
    BOOL stricterFilter = NO; 
    NSString *stricterFilterString = @"[A-Z0-9a-z\\._%+-][email protected]([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}"; 
    NSString *laxString = @"[email protected]([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]; 
} 
관련 문제