Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone MFMailComposeViewController无效的电子邮件地址?_Iphone_Objective C_Ios_Email - Fatal编程技术网

Iphone MFMailComposeViewController无效的电子邮件地址?

Iphone MFMailComposeViewController无效的电子邮件地址?,iphone,objective-c,ios,email,Iphone,Objective C,Ios,Email,我正在使用MFMailComposeViewController,以便用户可以在应用程序中发送电子邮件。就这样: MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init]; [mail setToRecipients:[NSArray arrayWithObject:emailString]]; mail.mailComposeDelegate = self; [self presentModa

我正在使用MFMailComposeViewController,以便用户可以在应用程序中发送电子邮件。就这样:

MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init];

[mail setToRecipients:[NSArray arrayWithObject:emailString]];
mail.mailComposeDelegate = self;
[self presentModalViewController:mail animated:YES];
我已经注意到,如果给它一个无效的电子邮件地址,它根本不会把它放在收件人字段中,是否有我采取行动的这种情况发生了?还是凌驾于此


谢谢。

首先尝试验证您的电子邮件地址。使用下面的代码

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

将电子邮件字符串作为参数传递给NSStringIsValidEmail:method。如果有效,它将返回YES,否则返回NO。

您的电子邮件字符串中有什么?假设
emailString
equals
skdhfsf
,那么它会检测到其无效,并且不会将其添加为收件人,但是可以说它的
email@address.com
,its可以查看其有效信息,并将其添加为收件人。那么,当正则表达式检测到其是否有效时,是否可以告诉我?正则表达式将拒绝许多有效的电子邮件地址。它在“@”之前允许的字符集太小,而顶层域总是2-4个字母的假设也不正确。看见