2012-04-27 2 views

ответ

6

Проблема заключается в том, что + [NSImage imageNamed:] не загружает изображения по URL. Если вы прочтете документацию, в нем объясняется, что он на самом деле делает: он ищет изображение, хранящееся в кеше под этим именем, или хранится в комплекте приложения или в инфраструктуре AppKit под этим именем файла.

Существует множество способов фактического открытия изображения по URL-адресу. Один вы, вероятно, ищете это:

NSImage *image = [[[NSImage alloc] initWithContentsOfURL:panel.URL] autorelease]; 

Кроме того, в качестве побочного вопроса, то, как вы пытаетесь превратить URL в путь неверен. Если у вас есть NSURL для файла: //localhost/Users/user437064/Pictures/mypic.jpg, просто преобразование этого в строку просто дает вам @ "файл: //localhost/Users/user437064/Pictures/mypic.jpg". Это не путь, который вы можете использовать с API-интерфейсами на основе маршрутов. То, что вы на самом деле хотите, это @ "/ Users/user437064/Pictures/mypic.jpg", и так, как вы это понимаете, - [путь NSURL]. Итак, «NSString * imgg = [panel.URL path];». Но это не имеет значения; если вам не нужно иметь дело с очень старыми версиями OS X или API-интерфейсов вне протокола, почти всегда существует метод, который принимает URL-адрес для каждого метода, который принимает путь, и часто устаревшие на основе пути устарели.

В качестве еще более отдаленной проблемы вам не требуется stringWithFormat: преобразовать что-то в строку; «[panel.URL description]» дает тот же результат, что и «[NSString stringWithFormat: @"% @ ", panel.URL]", намного проще и немного более эффективно.

+0

Большое вам спасибо –

Смежные вопросы