Правильный способ вставить изображение из памяти в Webview в Cocoa?

#cocoa #image #webview #core-plot

#cocoa #изображение #webview #core-plot

Вопрос:

У меня есть изображение графика, сгенерированного с использованием фреймворка Core-Plot. Я хотел бы иметь возможность вставлять изображение в пользовательский отчет, который хранится в Webview.

Есть ли рекомендуемый или наиболее практичный способ сделать это. т. е. если изображение необходимо сохранить на диск в виде временного файла, куда следует поместить изображение? Когда следует удалить изображение и т.д.?

Ответ №1:

Предполагая, что вы контролируете весь html, который должен отображаться в webview, я бы посоветовал сохранить что-то вроде локального веб-архива, где html, изображение и любые другие ресурсы находятся в одном месте, что значительно снижает вероятность взлома вашего пользовательского отчета. (Вы могли бы даже сделать его поддерживаемым типом документа пакета, если вы продвинетесь так далеко.)

Если вам просто нужно иметь файл доступным для одноразового рендеринга измененного html-документа, я предлагаю использовать путь NSTemporaryDirectory():

 NSData        *imageData = ...;
NSString      *temporaryImagePath = NSTemporaryDirectory();
NSError       *error = nil;

temporaryImagePath = [ temporaryImagePath stringByAppendingPathComponent: @"img.jpg" ];
[ imageData writeToFile: temporaryImagePath options: NSDataWritingAtomic error: amp;error ];