NSImage
的文档列出了许多应使用+[NSImage imageNamed:]
提供的标准图片。它们列在NSImage
class reference。
但是,当我尝试加载以下内容时,我会继续(null)
,但结果并不仅限于NSImageNameSmartBadgeTemplate
。在给出程序包中的图像名称时,代码按预期工作。有什么想法吗?
NSString *filterIconName = @"NSImageNameSmartBadgeTemplate";
_icon = [NSImage imageNamed:filterIconName];
NSLog(@"icon = %@", _icon);
答案 0 :(得分:6)
标识图像的字符串的内容不一定与字符串的名称相同。您希望使用名称进行分配,如下所示:
NSString *filterIconName = NSImageNameSmartBadgeTemplate;
或直接使用该名称:
[NSImage imageNamed:NSImageNameSmartBadgeTemplate]
您只能在公共标题中看到名称声明:extern NSString * const PeanutButter
。当Apple在另一个文件中定义字符串时,该值可以是任何值:
NSString * const PeanutButter = @"Jelly";
如果他们认为有必要,Apple也可以更改字符串的值,只要您只引用该名称,您的代码就会继续有效。