Использование константы шаблона изображения AppKit дает ноль - PullRequest
2 голосов
/ 26 декабря 2011

В документации для NSImage перечислены многие стандартные изображения, которые должны быть легко доступны при использовании +[NSImage imageNamed:]. Они перечислены в справочнике классов NSImage .

Я продолжаю получать (null), когда пытаюсь загрузить следующее, однако, и этот результат не ограничивается NSImageNameSmartBadgeTemplate. Код работает, как и ожидалось, если дать имя изображения в комплекте моей программы. Есть мысли?

NSString *filterIconName = @"NSImageNameSmartBadgeTemplate";
_icon = [NSImage imageNamed:filterIconName];
NSLog(@"icon = %@", _icon);

1 Ответ

6 голосов
/ 26 декабря 2011

содержимое строки, идентифицирующей изображение, не обязательно совпадает с name строки.Вы хотите выполнить свое назначение, используя имя , например:

NSString *filterIconName = NSImageNameSmartBadgeTemplate;

Или просто используйте имя напрямую:

[NSImage imageNamed:NSImageNameSmartBadgeTemplate]

Вы можете увидеть только объявлениеимени в общедоступном заголовке: extern NSString * const PeanutButter.Когда Apple определяет строку в другом файле, значение может быть любым:

NSString * const PeanutButter = @"Jelly";

Apple также может изменить значение строки, если они сочтут это необходимым, и ваш код будет работать до тех пор, покаВы обращаетесь только к имени.

...