2012-07-16 44 views
0

我想从我的iphone应用程序发送附加到邮件的sqlite数据库,我收到电子邮件但不是数据库文件,对我的语法抱歉,我来自西班牙,这是我的代码。从xCode发送数据库时出错

-(IBAction)mandar:(id)sender 
{ 
    MFMailComposeViewController *composer=[[MFMailComposeViewController alloc]init]; 
    [composer setMailComposeDelegate:self]; 
    if ([MFMailComposeViewController canSendMail]) 
    { 
     [composer setToRecipients:[NSArray arrayWithObjects:@"Introducir direccion",nil]]; 
     [composer setSubject:@"Base de datos"]; 
     [composer setMessageBody:@"Mensage" isHTML:YES]; 
     [composer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

     NSString *documentsDirectory = [paths objectAtIndex:0]; 

     NSString *file = [documentsDirectory stringByAppendingPathComponent:@"capturas.sqlite"]; 

     NSData *data=[NSData dataWithContentsOfFile:file]; 

     [composer addAttachmentData:data mimeType:@"application/sqlite" fileName:@"capturas.sqlite"]; 

     [self presentModalViewController:composer animated:YES]; 
    } 
    else { 
     UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Error" message:@"No se a podido mandar el mensage" delegate:self cancelButtonTitle:@"dismis" otherButtonTitles:nil, nil]; 
     [alert show]; 
    } 
} 

回答

0

我认为你应该使用:

应用程序/ x-sqlite3的,而不是为mime类型

编辑应用程序/ SQLite的:这解决了它,并发送文件:

-(IBAction)mandar:(id)sender { 

MFMailComposeViewController *composer=[[MFMailComposeViewController alloc]init]; 
[composer setMailComposeDelegate:self]; 
if ([MFMailComposeViewController canSendMail]) 
{ 
    [composer setToRecipients:[NSArray arrayWithObjects:@"EMAIL Address here",nil]]; 
    [composer setSubject:@"Base de datos"]; 
    [composer setMessageBody:@"Mensage" isHTML:YES]; 
    [composer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 

从您的代码评论这些:

// NSArray * paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory,NSUserDomainMask,YES);

// NSString * documentsDirectory = [paths objectAtIndex:0];

// NSString * file = [documentsDirectory stringByAppendingPathComponent:@“capturas.sqlite”];

// NSData * data = [NSData dataWithContentsOfFile:file];

并用以下

NSString *path = [[NSBundle mainBundle] pathForResource:@"database name without extension" ofType:@"sqlite"]; 
    NSData *myData = [NSData dataWithContentsOfFile:path]; 

    [composer addAttachmentData:myData mimeType:@"application/x-sqlite3" fileName:path]; 

    [self presentModalViewController:composer animated:YES]; 
} 
else { 
    UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Error" message:@"No se a podido mandar el mensage" delegate:self cancelButtonTitle:@"dismis" otherButtonTitles:nil, nil]; 
    [alert show]; 
} 

}

+0

仍然一无所获=替换( – user1528181 2012-07-16 07:46:31

+0

还设置isHTML:为NO,如果没有工作,你可以检查这个链接引用(http://principalhuman.com/composer addAttachmentData:data mimeType:@“application/x-content-sending-email-attachment-using-apple-iphone-sdk-xcode-40) – XIII 2012-07-16 07:51:38

+0

但仍然没有结果,错误必须在这一行[ sqlite“fileName:@”capturas.sqlite“]; – user1528181 2012-07-16 08:04:32