- Registriert
- 23.01.10
- Beiträge
- 88
Hey Leute,
hab mal wieder ein kleines Problem
Seit Version 3.0 besteht ja die Möglichkeit eMails direkt in einer Applikation zu schreiben und diese von dort aus zu versenden anstatt über
das interne Mailprogramm aufzurufen und die eigene Anwendung zu verlassen. Soweit die Theorie 
Ich habe mir dazu folgenden https://developer.apple.com/iphone/library/samplecode/MailComposer/Introduction/Intro.html Beispielcode von der AppleDeveloperseite heruntergeladen und angeschaut.
Im Beispielcode klappt es auch soweit ganz gut.
Hab nun versucht den Beispielcode in meine Anwendung einzubinden und den Beispielcode einwenig modifizierten und folgenden Code
in die jeweilige Datei eingebunden. Ich hab die Imports und das @synthesize gesetzt und das Framework MessageUI eingebunden und der Compiler übersetzt den Code auch sauber.
Aber die Applikation crashed immer mit folgender Fehlermeldung
Das Merkwürde an der Sache ist, das der Crash passiert bevor ich an die entsprechenden Stelle im Code komme wo der obige Code ausgeführt wird?
Mein Programm liefert eine Tableview-Kurzübersicht mit Daten, der Nutzer kann sich dann für eine Row entscheiden und dann wird normalerweise der Datensatz dieser Row im Detail gezeigt und erst in der Detailsicht soll der Nutzer per Knopfdruck die Mailanwendung starten können, aber der Crash kommt bereits in der Tableview-Kurzübersicht zustande?
Die Tableview-Kurzübersicht und die Detailansicht werden direkt per Code und ohne Interfacebuilder XIBs dynamisch aufgebaut.
Wäre echt super wenn jemand bescheid wüsste besten Dank schon mal denio
hab mal wieder ein kleines Problem

Seit Version 3.0 besteht ja die Möglichkeit eMails direkt in einer Applikation zu schreiben und diese von dort aus zu versenden anstatt über
Code:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailto]];

Ich habe mir dazu folgenden https://developer.apple.com/iphone/library/samplecode/MailComposer/Introduction/Intro.html Beispielcode von der AppleDeveloperseite heruntergeladen und angeschaut.
Im Beispielcode klappt es auch soweit ganz gut.
Hab nun versucht den Beispielcode in meine Anwendung einzubinden und den Beispielcode einwenig modifizierten und folgenden Code
Code:
-(void)showPicker
{
NSLog(@"MCVC showPicker");
// This sample can run on devices running iPhone OS 2.0 or later
// The MFMailComposeViewController class is only available in iPhone OS 3.0 or later.
// So, we must verify the existence of the above class and provide a workaround for devices running
// earlier versions of the iPhone OS.
// We display an email composition interface if MFMailComposeViewController exists and the device can send emails.
// We launch the Mail application on the device, otherwise.
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil)
{
// We must always check whether the current device is configured for sending emails
if ([mailClass canSendMail])
{
[self displayComposerSheet];
}
else
{
[self launchMailAppOnDevice];
}
}
else
{
[self launchMailAppOnDevice];
}
}
#pragma mark -
#pragma mark Compose Mail
// Displays an email composition interface inside the application. Populates all the Mail fields.
-(void)displayComposerSheet
{
NSLog(@"MCVC displayComposerSheet");
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
[picker setSubject:@"Hello from California!"];
// Set up recipients
NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"];
NSArray *ccRecipients = [NSArray arrayWithObjects:@"[email protected]", @"[email protected]", nil];
NSArray *bccRecipients = [NSArray arrayWithObject:@"[email protected]"];
[picker setToRecipients:toRecipients];
[picker setCcRecipients:ccRecipients];
[picker setBccRecipients:bccRecipients];
// Attach an image to the email
NSString *path = [[NSBundle mainBundle] pathForResource:@"rainy" ofType:@"png"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[picker addAttachmentData:myData mimeType:@"image/png" fileName:@"rainy"];
// Fill out the email body text
NSString *emailBody = @"It is raining in sunny California!";
[picker setMessageBody:emailBody isHTML:NO];
[self presentModalViewController:picker animated:YES];
[picker release];
}
// Dismisses the email composition interface when users tap Cancel or Send. Proceeds to update the message field with the result of the operation.
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
NSLog(@"MCVC mailComposeController");
// Notifies users about errors associated with the interface
switch (result)
{
case MFMailComposeResultCancelled:
NSLog(@"Result: canceled");
break;
case MFMailComposeResultSaved:
NSLog(@"Result: saved");
break;
case MFMailComposeResultSent:
NSLog(@"Result: sent");
break;
case MFMailComposeResultFailed:
NSLog(@"Result: failed");
break;
default:
NSLog(@"Result: not sent");
break;
}
[self dismissModalViewControllerAnimated:YES];
}
#pragma mark -
#pragma mark Workaround
// Launches the Mail application on the device.
-(void)launchMailAppOnDevice
{
NSLog(@"MCVC launchMailAppOnDevice");
NSString *recipients = @"mailto:[email protected][email protected],[email protected]&subject=Hello from California!";
NSString *body = @"&body=It is raining in sunny California!";
NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body];
email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]];
}
in die jeweilige Datei eingebunden. Ich hab die Imports und das @synthesize gesetzt und das Framework MessageUI eingebunden und der Compiler übersetzt den Code auch sauber.
Aber die Applikation crashed immer mit folgender Fehlermeldung
Code:
2010-06-22 18:01:57.182 myApp[5036:4f0f] *** -[Data setIdData:]: unrecognized selector sent to instance 0x4b7fb90
2010-06-22 18:01:57.182 myApp[5036:4f0f] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[Data setIdData:]: unrecognized selector sent to instance 0x4b7fb90'
2010-06-22 18:01:57.183 myApp[5036:4f0f] Stack: (
31220827,
2475881737,
31602747,
31172214,
31024834,
59777,
2135453,
34718460,
34742277,
2131775,
56764,
1951124,
1950979,
36341172,
36339220,
36342418,
36001745,
31004897,
31001672,
1768693,
56040,
1593197,
1592072,
2545559581,
2545559202
)
Das Merkwürde an der Sache ist, das der Crash passiert bevor ich an die entsprechenden Stelle im Code komme wo der obige Code ausgeführt wird?
Mein Programm liefert eine Tableview-Kurzübersicht mit Daten, der Nutzer kann sich dann für eine Row entscheiden und dann wird normalerweise der Datensatz dieser Row im Detail gezeigt und erst in der Detailsicht soll der Nutzer per Knopfdruck die Mailanwendung starten können, aber der Crash kommt bereits in der Tableview-Kurzübersicht zustande?
Die Tableview-Kurzübersicht und die Detailansicht werden direkt per Code und ohne Interfacebuilder XIBs dynamisch aufgebaut.
Wäre echt super wenn jemand bescheid wüsste besten Dank schon mal denio
