来自HTML img标记中使用的Core Data的iOS资源路径

时间:2012-03-28 00:08:23

标签: objective-c ios email uitableview core-data

我正在创建一个应用程序,允许用户在Core Data图表中拍摄和存储照片,然后通过应用程序在桌面上发送这些照片。

我已经能够通过将资产路径转换为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;
}

我要做的是将Core Data图中的图像加载到HTML img标记中。我将以下资产路径拉入var tmp:

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

How do I do base64 encoding on iphone-sdk?