Установить изображение при запуске приложения

#objective-c #cocoa

#objective-c #cocoa

Вопрос:

В настоящее время я разрабатываю настольное приложение Obj-C, которое получает строку из URL-адреса и отображает изображение, относящееся к полученной строке.

 //I know this one won't work, but it's just for example
NSString * text = [NSString stringFromUrl:@"http://example.com"];
NSString * imageName = [text splitStringIntoSome];
//imageName is now @"A.png"

[imageViewOutlet setImage:[NSImage imageNamed:imageName];
  

Итак, проблема в том, что я хочу сделать это при запуске приложения, но когда я копирую этот код в свой applicationDidFinishLaunching, просто ничего не происходит…

Ответ №1:

К сожалению, поскольку запросы URL выполняются асинхронно, для этого требуется немного больше кода. Вот хороший пример прямо из Apple: использование NSURLConnection

За исключением того, что - (void)connectionDidFinishLoading:(NSURLConnection *)connection вы бы создали изображение, используя NSImage - (id)initWithData:(NSData *)data

Комментарии:

1. Почему initWithData вместо imageNamed:(NSString *)aString

2. «imageNamed:» принимает имя изображения или имя файла из вашего пакета. NSURLConnection возвращает NSData, так что это то, что вы должны использовать

3. Нет, я получаю имя изображения в качестве содержимого URL. Само изображение загружается правильно, когда я вызываю функцию для каждого нажатия кнопки, оно просто не работает, когда я использую его в делегате моего приложения