Путь к ресурсам iOS из Core Data, используемый в теге HTML img - PullRequest
0 голосов
/ 28 марта 2012

Я создаю приложение, которое позволяет пользователям делать и сохранять фотографии в графике базовых данных, а затем отправлять эти фотографии по электронной почте в виде таблицы из приложения.

Мне удалось сохранить фотографии в базе данных SQlite, преобразовав пути к активам в значения NSURL и сославшись на них, чтобы предотвратить проблемы с памятью в базе данных.

Моя последняя задача - разрешить пользователям отправлять свои фотографии по электронной почте в красиво оформленной таблице с описанием фотографии. Это автоматически генерируется из 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 Ответ

1 голос
/ 28 марта 2012

Как вы отправляете письмо?Через MFMailComposeViewController?Я бы подумал, что вы будете прикреплять файлы через addAttachmentData:mimeType:fileName:.Это, вероятно, проще всего.

В качестве альтернативы, если вы хотите создать собственное красивое HTML-тело с включенными в него изображениями, вы, вероятно, захотите использовать кодировку base64 своих изображений.Затем вы помещаете что-то вроде <img src="data:image/gif;base64,XXX"> в ваш html, где XXX - это кодировка base64 вашего изображения.Когда я сделал это, я кодировал с помощью Google GTMBase64 в GTM:

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

Здесь также есть статьи о библиотеках base64, например,

Как мнесделать кодировку base64 на iphone-sdk?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...