【问题标题】:Email NSMutableString in Objective CObjective C 中的电子邮件 NSMutableString
【发布时间】:2013-05-31 20:03:44
【问题描述】:

我正在通过电子邮件正文发送 NSMutableString。 它不起作用,因为它说 senderString 不能静态定位。帮忙?

NSMutableString *senderString = [[NSMutableString alloc] init];

NSURL *mailURL = [NSURL URLWithString: @"mailto:email@address.com?cc=another@email.com&subject=My%20Subject%20Line&body=%@"], senderString;
[[UIApplication sharedApplication] openURL: mailURL];

【问题讨论】:

  • 所以你遇到了编译器错误?
  • 是的,错误是当我在所有电子邮件信息的同一行中使用 senderString 时
  • 为什么不使用MFMailComposeViewController 允许用户从您的应用发送电子邮件?

标签: objective-c nsstring mailto nsmutablestring


【解决方案1】:

问题是您在声明mailURL 的行末尾包含senderString。我假设您正在尝试将 senderString 设置为电子邮件的正文。

如果是这种情况,您需要执行以下操作:

NSString *urlString = [NSString stringWithFormat:
  @"mailto:email@address.com?cc=another@email.com&subject=My%%20Subject%%20Line&body=%@",
 senderString];

值得一提的是,如果 senderString 尚未按照在 url 中使用的要求进行百分比转义,您需要首先执行类似的操作(即在调用 stringWithFormat 之前):

senderString = [senderString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

然后你可以像这样构造mailURL

NSURL *mailURL = [NSURL URLWithString:urlString];

更新:我在%20 中添加了对百分比的转义,并添加了一个建议以转义senderString 参数,正如rmaddy 所建议的那样。

【讨论】:

  • 您需要将%20 替换为%%20,因为此字符串现在是格式字符串。要将% 字符放入字符串中,您需要对其进行转义,使其变为%%
  • 您需要在senderString 上致电stringByAddingPercentEscapesUsingEncoding:
  • @rmaddy 关于 % 转义的好点。我已经更新了答案。至于 senderString 转义,我从他的一个 cmet 中得到的印象是已经转义了,或者至少不需要转义。虽然,现在想想,我可能至少应该在答案中提到这一点。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-19
  • 2013-05-26
  • 1970-01-01
相关资源
最近更新 更多