0

大家好,感谢您的宝贵时间。我相信我有一个简单的问题。

我正在尝试剥离字符串电子邮件正文的引号(它们似乎来自从字典中获取我的正文)并将其传递给 MailObject .... 没有运气,我一直在我的 *finalString 行上获得 SIGBRT。
我错过了什么。再次感谢任何帮助。

NSMutableDictionary *my_data = [myMasterOrderList objectAtIndex:[self.tableView indexPathForCell:cell].row];
   NSMutableArray   *toEmail = [[NSMutableArray alloc] init];
   [toEmail addObject:[my_data objectForKey:@"repemail"]];

   NSMutableString *toBody = [my_data objectForKey:@"myOrder"];
  // [toBody addObject:[my_data objectForKey:@"myOrder"]];
  // NSString *finalSting = [[NSString alloc] init];
   NSMutableString *finalString = [NSMutableString stringWithFormat:@"%@",[toBody stringByReplacingOccurrencesOfString:@"\"" withString:@"%20"]];

   NSLog(@" toBody my_data%@", finalString);
//*************  SEND MAIL *************
   if ([MFMailComposeViewController canSendMail]) {

       MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
       mailViewController.mailComposeDelegate = self;
       [mailViewController setToRecipients:toEmail];
       [mailViewController setSubject:@"Sub Goes Here."];
       [mailViewController setMessageBody:finalString isHTML:NO];

       [self presentModalViewController:mailViewController animated:YES];
4

2 回答 2

2

我认为问题是这样的:withString:@"%20"它需要是withString:@"%%20"因为 % 字符在 NSStrings 中是特殊的,所以要有一个文字 % 符号,你需要转义它。

我还要注意,如果您不需要 finalString 是可变的(从您发布的代码中,您不需要),您可以这样做:

NSString *finalString = [toBody stringByReplacingOccurrencesOfString:@"\"" withString:@"%%20"];
于 2012-05-07T23:45:43.803 回答
0

我测试了这段代码:

NSString *toBody = @"this \" is my \" body \" email\"";
NSMutableString *finalString = [NSMutableString stringWithFormat:@"%@",[toBody stringByReplacingOccurrencesOfString:@"\"" withString:@"%20"]];
NSLog(@"%@", finalString);

NSLog 的输出是:

2012-05-07 19:44:04.157 StringTesting[19203:f803] this %20 is my %20 body %20 email%20

我实际上复制了你的代码来使用。我知道这听起来很基本,但是自从我的工作以来,您是否尝试过重新启动 Xcode 和/或重新启动您的机器,清理您的项目等...?

于 2012-05-07T23:45:54.573 回答