objective-c - HTML img 标签中使用的 Core Data 的 iOS Assets 路径

标签 objective-c ios email uitableview core-data

我正在创建一个应用程序,让用户可以拍摄照片并将其存储在核心数据图表中,然后通过应用程序内的表格通过电子邮件发送这些照片。

我已经能够通过将 Assets 路径转换为 ​​NSURL 值并引用它们来将照片保存在 SQlite 数据库中 - 以防止数据库遭受内存问题。

我的最后一个任务是允许用户通过电子邮件将他们的照片放在一个布局精美的表格中,并附上照片的描述。这是从显示图像的 UITableView 自动生成的。

我使用以下内容生成 HTML 电子邮件:

- (NSString *)generateHTMLBody {

    NSString *res = @"<HTML><body><table border=""1"">\n";

    for (int i=0; i < [self.fetchedResultsController.fetchedObjects count]; i++) {
        NSString *rowCount = [NSString stringWithFormat:@"%d.", i+1]; 
        NSString *tmp = (NSString *)[imageList objectAtIndex:0];
        NSString *imageString = [NSString stringWithFormat:@"<img src=""%@"" />",tmp];

        res = res = [res stringByAppendingString:@"<tr><td>"];
        res = res = [res stringByAppendingString:rowCount];
        res = res = [res stringByAppendingString:@"</td>\n"];
        res = res = [res stringByAppendingString:@"<td>"];
        res = res = [res stringByAppendingString:imageString];
        res = res = [res stringByAppendingString:@"</td>\n"];
        res = res = [res stringByAppendingString:@"<td>"];
        res = res = [res stringByAppendingString:tmp];
        res = res = [res stringByAppendingString:@"</td></tr>\n"];
    }
    res = [res stringByAppendingString:@"</table></body></html>\n"];
    return res;
}

我想做的是将核心数据图中的图像加载到 HTML img 标签中。我将以下资源路径拉入 var tmp 中:

assets-library://asset/asset.JPG?id=2F62642E-00B3-4D85-82D2-A6A1F064F2CE&ext=JPG

但是,这不起作用。我如何将这些照片加载到电子邮件中?

最佳答案

您如何发送电子邮件?通过MFMailComposeViewController ?我本以为您会通过 addAttachmentData:mimeType:fileName: 附加文件.这可能是最简单的。

或者,如果您想构建一个自定义的、漂亮的 html 正文,其中包含图像,您可能需要对图像进行 Base64 编码。然后你输入类似 <img src="data:image/gif;base64,XXX"> 的内容在你的 html 中,其中 XXX是图像的 Base64 编码。当我这样做时,我在 GTM 中使用 Google GTMBase64 进行编码:

http://code.google.com/p/google-toolbox-for-mac/

这里还有关于 base64 库的文章,例如

How do I do base64 encoding on iphone-sdk?

关于objective-c - HTML img 标签中使用的 Core Data 的 iOS Assets 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9899445/

相关文章:

IOS:使用 NSUserDefault 存储一个数组

iphone - 以编程方式清除 iPhone 上的二级缓存

ios - 在自定义键盘中正确实现 handleInputModeList

iphone - 在 iPhone HTML 邮件中显示本地镜像

java - Mailgun Java API 发送 HTML 电子邮件

iphone - MPMoviePlayerController iO7 问题

ios - 为 UITextField 提供两个核心数据属性?

ios - 按下按钮时对象过度释放

ios - Firebase 消息不在 iOS 上 - FIRMessaging 收到数据消息,但 FIRMessagingDelegate 的消息 :didReceiveMessage: not implemented

linux - 使用外部 smtp 服务器发送电子邮件时达到 Amazon EC2 邮件限制