我正在创建一个应用程序,让用户可以拍摄照片并将其存储在核心数据图表中,然后通过应用程序内的表格通过电子邮件发送这些照片。
我已经能够通过将 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 库的文章,例如
关于objective-c - HTML img 标签中使用的 Core Data 的 iOS Assets 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9899445/