2014-01-14 5 views
1

유효하지 않은 전자 메일 주소로 전자 메일을 보낼 때 콘솔 로그에 "... 유효한 전자 메일 주소가 아닙니다."라는 메시지가 나타납니다.MFMailComposeViewController 콘솔 로그 "... 유효한 전자 메일 주소가 아닙니다."

이것은 괜찮습니다. 왜 그런 일이 발생하는지 알 수 있습니다.

내가 알고 싶은 것은 ..이 NSLog 구문은 어디서오고 어디에서 접근 할 수 있습니까?

MFCVController 또는 위임의 어느 곳에서도 프레임 워크는 전자 메일이 유효한지 여부를 확인한 다음 이에 따라 "... 유효한 전자 메일 주소가 아닙니다"라고 기록합니다.

이 호출에 액세스하여 동일한 것을 확인하고 alertView를 만들고 싶습니다.

내가 이미 알고있는 몇 가지 의견을 여기에 올리기 전에 ... alertViews를 만드는 방법을 알고 있습니다. 잘못된 이메일 주소에 대한 문자열을 검사하는 코드로 사용자가 작성한 다른 게시물에 대해 알고 있고 읽었습니다.

도와 주셔서 감사합니다.

추가 정보 : 문상 출력으로 NSLog 참조 : 여기

는 말 그대로 여기에서 일어나는, 유용한 통찰력이다.

 if ([MFMailComposeViewController canSendMail]) 
    { NSLog(@"Log 1"); 

     MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc]init]; 
     mailer.mailComposeDelegate = self; 

     [mailer setSubject:@"Checklist Complete"]; 
     NSLog(@"Log 2"); 
     NSArray *toRecipients = [NSArray arrayWithObject:emailAddress]; 
     NSLog(@"Log 3"); 
     [mailer setToRecipients:toRecipients]; 
     NSLog(@"Log 4"); 
     NSString *emailBody = emailBodyContents; 
     NSLog(@"Log 5"); 
     [mailer setMessageBody:emailBody isHTML:NO]; 
     NSLog(@"Log 6"); 
     //For iPad 
     //mailer.modalPresentationStyle = UIModalPresentationPageSheet; 
     [self presentViewController:mailer animated:YES completion:nil]; 
     NSLog(@"Log 7"); 

    } 

콘솔.

2014-01-15 21:11:30.581 AppTemplate[1018:70b] Log 1 
2014-01-15 21:11:30.584 AppTemplate[1018:70b] Log 2 
2014-01-15 21:11:30.585 AppTemplate[1018:70b] Log 3 
2014-01-15 21:11:30.585 AppTemplate[1018:70b] (null) is not a valid email address. 
2014-01-15 21:11:30.586 AppTemplate[1018:70b] Log 4 
2014-01-15 21:11:30.586 AppTemplate[1018:70b] Log 5 
2014-01-15 21:11:30.587 AppTemplate[1018:70b] Log 6 
2014-01-15 21:11:30.588 AppTemplate[1018:70b] Log 7 

그리고 이것은 내가 엑스 코드에서 볼 수있는 문서입니다

- (void)setToRecipients:(NSArray *)toRecipients __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0) 
/*! 
@method  setCcRecipients: 
@abstract This method sets the CC header for the email message to the specified email addresses. 
@discussion This method will set the CC header for the email message. This should be called prior to display. 
      </p>Recipient addresses should be specified as per RFC5322. 
      </p>After the view has been presented to the user, this method will no longer change the value. 
@param  ccRecipients A NSArray of NSString instances specifying the email addresses of recipients. 

*/

+0

당신을 로그 메시지의 정확한 일치로 xcode의 전체 작업 공간을 검색 할 수 있습니다. 그렇게하면 유스 케이스에 맞게 확장 할 수 있습니다. – xoail

+0

팁 주셔서 감사합니다. 불행하게도 나는 그것을했고 검색은 비어있게되었다. 나는 심지어 내 작업 공간에있는 모든 "NSLog"를 검사했습니다. - 아무것도. 질문, 그리고 더 나아가고있다. 나는 또한 "NSLog"가 애플의 Default .h 파일에서 발견된다는 것을 발견했다.이 NSLog는 애플 premade 어딘가에서 발견 될 수있다. .h, 그렇다면, 어디에서? – user3174007

+0

MFCVController 란 무엇입니까? 나는 그것에 어떤 정보든지 온라인으로 찾아 낼 수 없다. 그게 당신이 쓴 것이에요? – xoail

답변

0

당신은 삭제를 설정하고 오류가 같이 발생하는 경우 감지합니다 :

- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{ 
switch (result) 
{ 
    case MFMailComposeResultCancelled: 
     NSLog(@"Mail cancelled"); 
     break; 
    case MFMailComposeResultSaved: 
     NSLog(@"Mail saved"); 
     break; 
    case MFMailComposeResultSent: 
     NSLog(@"Mail sent"); 
     break; 
    case MFMailComposeResultFailed: 
     NSLog(@"Mail sent failure: %@", [error localizedDescription]); 
     break; 
    default: 
     break; 
} 

// Close the Mail Interface 
[self dismissViewControllerAnimated:YES completion:NULL];} 
+0

감사합니다. 이미 구현했습니다. 모든 것이 완벽하게 작동합니다. 이 NSLog가 어디서 왔는지 알고 싶습니다. 나는 그것을 쓴 적이 없지만 모든 것을 연결 한 후에는 그것을 로깅하고있다. – user3174007

+0

원본 게시물에 추가 한 코드 및 콘솔 로그를 참조하십시오. – user3174007

+0

그것은 현상입니다. – user3174007