#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. Само изображение загружается правильно, когда я вызываю функцию для каждого нажатия кнопки, оно просто не работает, когда я использую его в делегате моего приложения