Как включить содержимое десятичной переменной в текст электронного письма, отправленного из моего приложения для iphone

#iphone #cocoa-touch #email

#iPhone #cocoa-touch #Адрес электронной почты

Вопрос:

Я прочитал несколько сообщений, касающихся MFMailViewController, и задаюсь вопросом, могу ли я включить содержимое десятичной переменной, которую я использую в своем приложении для Iphone для сохранения результата некоторых вычислений, в тело сообщения электронной почты, которое будет отправлено из моего приложения для iPhone.

Вот код для вычисления, которое я использую в своем приложении для вычисления и отображения результата в текстовом поле на экране:

 GPM1 = [NSDecimalNumber decimalNumberWithString: GPMinput1.text];
GPM2 = [NSDecimalNumber decimalNumberWithString: GPMinput2.text];
Result = [GPM1 decimalNumberByDividingBy:GPM2] ;
GPMresult.text = [numberFormatter stringFromNumber:Result];
  

Я хочу отобразить содержимое десятичной переменной «Результат» как часть тела электронного письма. Например: ваш результат GPM = «Результат».

У кого-нибудь есть идея?

Ответ №1:

Попробуйте это

  float GPM1 = [GPMinput1.text floatValue];
 float GPM2 = [GPMinput2.text floatValue]];
 float Result = GPM1/GPM2 ;

MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
NSString    *pResult=[NSString  stringWithFormat:@"GPM result  = %.4f",Result];
[controller setMessageBody: pResult isHTML:NO];         
[controller setSubject:@"Subject"];         
[self presentModalViewController:controller animated:YES];      
[controller release]
  

Комментарии:

1. Спасибо, но в теле электронного письма отображается «Результат GPM = 0.000», в то время как должно отображаться «Результат GPM = 6.1234», где 6.1234 — это содержимое десятичной переменной «Результат». Похоже, что предварительная переменная в вашем коде не смогла прочитать десятичное значение в результате. Можете ли вы, пожалуйста, посоветовать другую рабочую альтернативу?

2. Также просто упомяну, что я объявляю результат как объект NSDecimalNumber.

Ответ №2:

Вы должны использовать MFMailComposeViewController на iOS 3.0 и более поздних версиях и реализовать протокол MFMailComposeViewControllerDelegate:

 MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"My Subject"];
[controller setMessageBody:@"Hello there." isHTML:NO]; 
if(controller) {
  [self presentModalViewController:controller animated:YES];
}
[controller release];
  

Когда пользователь отправил письмо, вам перезвонят следующим способом:

 - (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
  if (result == MFMailComposeResultSent) {
    NSLog(@"It has been sent.");
  }
  [self dismissModalViewControllerAnimated:YES];
}
  

Комментарии:

1. @ckurse Спасибо за ваш ответ, я ищу более конкретный ответ на конкретный случай, который я упомянул в своем вопросе (чтобы включить содержимое некоторой переменной, которую я использую в своем приложении, в текст отправляемого электронного письма, например, если переменная «Result», о которой я упоминал ранее в моем вопросе, имеет значение 6.12345, тогда я хочу, чтобы текст электронного письма был чем-то вроде: «GPM result = 6.12345». Есть идеи, как это сделать с помощью MFMailComposeController?