从Parse表中获取正确的电子邮件集

时间:2014-01-05 03:27:34

标签: ios objective-c parse-platform mfmailcomposeviewcontroller

我有一个视图,用户可以浏览其他用户的个人资料。如果用户愿意,用户可以选择通过电子邮件发送给用户。我遇到的问题是只使用了第一个配置文件的电子邮件。

例如......

假设该视图有3个配置文件,每个配置文件都有一个唯一的电子邮件。

a@gmail.com

b@gmail.com

c@gmail.com

只有a@gmail.com被拿起。

我应该将它们存储在数组中并以这种方式选择它们吗?

或推荐另一种方法?

编辑:

为了澄清,我不想一次通过电子邮件发送每封电子邮件,它们必须对用户正在查看的配置文件是唯一的。

因此,如果他们正在查看个人资料C,他们只需要发送电子邮件至c@gmail.com。

这是我尝试过的东西:

// Profile Generator Method
- (void)createProfile
{
   // I use a for loop to create each profile
   // in the for loop I set the emails to the array, see below
   [self.emailArray addObject:[self.profileObject objectForKey:@"email"]];

   // add the emailUser method as a target to a button
}

// My Email Method
- (void)emailUser
{
    for (int i = 0; i < [self.emailArray count]; i++)
    {
        self.emailString = [NSString stringWithFormat:@"%@", [self.emailArray objectAtIndex:i]];

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

        [mc setSubject:@"Note"];
        [mc setToRecipients:[NSArray arrayWithObject:self.emailString]];

        mc.mailComposeDelegate = self;

        if([MFMailComposeViewController canSendMail])
        {
            [self presentViewController:mc animated:YES completion:nil];
        }
        else
        {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Your device is not configured to send mail." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
            [alert show];
        }

    }
}

编辑二:

当我在创建配置文件时记录我的emailArray时,我会看到阵列中的所有电子邮件。

当我使用emailUser方法时,只显示一个。

1 个答案:

答案 0 :(得分:0)

如果您想分别发送多封电子邮件,则使用多个MFMailComposeViewController将不是一个好选择。 相反,您应该通过自己的网络服务发送这些电子邮件。将您的所有电子邮件收件人传递到Web服务(PHPDotNet等),它应为每封电子邮件准备唯一的正文并单独发送。

如果您无法使用网络服务,那么您应该在MFMailComposeViewController模型中逐个展示Queued。一个接一个地重复呈现MFMailComposeViewController将不是一个好的用户体验。