Reputation: 2973
I recently learned how to implement an email in an iOS app, and I am confused on what this means. I have attached the errors, and the code as well. What I am trying to do is have the user enter information into a UITextField
and when they press send, it will send to my email. I have gotten these errors for the past couple times I have ran it, and I am still confused. Thank you in advance!
Information:Information:Building target 'RPSS' from 'RPSS' with configuration 'Debug' for architecture 'i386' using 'Simulator - iOS 4.3' sdk
Error:Error:The following build commands failed:
Error:Error:RPSS:
Error:Error:Ld "/Users/abowmanj/Documents/Xcode projects/RPSS/build/Debug- iphonesimulator/RPSS.app/RPSS" normal i386
Error:Error:Build Finished with Error: 1
Undefined symbol '_OBJC_CLASS_$_MFMailComposeViewController' referenced from:
Error:Error:objc-class-ref-to-MFMailComposeViewController in RPSSViewController.o
Error:Error:objc-class-ref-to-MFMailComposeViewController in SupportPage.o
build/Debug-iphonesimulator/RPSS.app/RPSS
Information:Information:ld: symbol(s) not found
Information:Information:collect2: ld returned 1 exit status
code:
-(void) showEmailModalView {
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;// <- very important step if you want feedbacks on what the user did with your email sheet
[picker setSubject:@"Comments, Suggestions, Etc."];
// Fill out the email body text
NSString *emailBody = [NSString stringWithFormat: @"%@", supportInput.text];
[picker setMessageBody:emailBody isHTML:YES]; // depends. Mostly YES, unless you want to send it as plain text (boring)
picker.navigationBar.barStyle = UIBarStyleDefault; // choose your style, unfortunately, Translucent colors behave quirky.
[self presentModalViewController:picker animated:YES];
[picker release];
}
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
if (result == MFMailComposeResultSent) {
UIAlertView *sentMail = [[UIAlertView alloc] initWithTitle: @"Mail Sent:" message: @"Your mail has been sent!" delegate: self cancelButtonTitle: nil otherButtonTitles: @"Close", nil];
[sentMail show];
[sentMail release];
}
[self dismissModalViewControllerAnimated:YES];
}
-(IBAction) send : (id) sender {
// We must always check whether the current device is configured for sending emails
if ([MFMailComposeViewController canSendMail]) {
[self showEmailModalView];
}
else {
UIAlertView *a = [[UIAlertView alloc] initWithTitle: @"Error" message: @"Device not configured to send mail." delegate: self cancelButtonTitle: nil otherButtonTitles: @"Ok", nil];
[a show];
[a release];
}
}
Upvotes: 2
Views: 582
Reputation: 15376
You need to include the MessageUI
framework. Have a look at How to "add existing frameworks" in Xcode 4?
Upvotes: 3