我目前有一个 iOS 应用程序,其中一个项目是从一系列项目中随机选择的,并显示在屏幕上。我已经在应用程序中构建了“随机性”和显示功能,但现在我正在尝试对其进行设置,以便您可以从应用程序内当前屏幕上的数组中通过电子邮件发送项目。例如,您按下按钮,它会随机显示一个从 1 到 10 的数字。我希望用户能够通过电子邮件发送屏幕上随机显示的任何数字,并在电子邮件正文中预先填充屏幕上的数字。因此,用户得到数字“3”,点击电子邮件按钮,当电子邮件撰写出现时,“3”已经预先填充在正文中。
我有两个问题,首先是弄清楚如何在我当前的代码中实现电子邮件功能代码。我已经构建了一个测试应用程序,它有一个按钮可以触发电子邮件撰写,并用一些静态文本填充正文,所以我对代码的工作原理有了基本的了解,但我不知道如何将它与我已经编写的代码集成。
我的第二个问题是让邮件正文预先填充屏幕上的随机数。
这里的第一个问题是我的 ViewController.h 的样子(我已经添加了 MessageUI 框架)
#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>
@interface ViewController : UIViewController {
NSArray *testArray;
}
- (IBAction)buttonGo:(UIButton *)sender;
@property (strong, nonatomic) IBOutlet UILabel *testLabel;
@property (strong, nonatomic) NSArray *testArray;
- (void) makePrediction;
@end
我的 ViewController.m 看起来像
#import "ViewController.h"
#import <MessageUI/MessageUI.h>
@interface ViewController ()
@end
@implementation ViewController
@synthesize testArray;
@synthesize testLabel;
- (void)viewDidLoad
{
[super viewDidLoad];
self.testArray = [[NSArray alloc] initWithObjects:@"number one",@"number `two",@'numberthree", nil];`
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)buttonGo:(id)sender {
NSUInteger index = arc4random_uniform(self.testArray.count);
self.testLabel.text = [self.testArray objectAtIndex:index];
}
- (void) makePrediction {
NSUInteger index = arc4random_uniform(self.
testArray.count);
self.testLabel.text = [self.testArray objectAtIndex:index];
}
- (BOOL) canBecomeFirstResponder {
return YES;
}
- (void) motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
self.testLabel.text = @"";
}
- (void) motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if ( motion == UIEventSubtypeMotionShake ){
[self makePrediction];
}
}
- (void) motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@"motion cancelled");
}
@end
该应用程序运行良好,但我不确定在哪里实现我的电子邮件代码。我也不确定如何用我的数组中的随机选择填充我的电子邮件正文。我假设它与 MessageUI 的这一点有关
NSString * sentFrom = @"text in email body";
[myMail setMessageBody:sentFrom isHTML:YES];