2011-12-25 33 views
2

NSImage的文档列出了很多标准图像,应该使用+[NSImage imageNamed:]随时可用。他们在NSImage class reference中列出。AppKit图像模板常量的使用产生null

但是,当我尝试加载以下内容时,我总是收到(null),但结果并不局限于NSImageNameSmartBadgeTemplate。如果在我的程序捆绑中给出图像的名称,代码将按预期工作。有什么想法吗?

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

忘了提及这是在10.7 – pickwick 2011-12-25 20:50:52

回答

6

字符串识别图像的内容不一定一样名称字符串的。你想使用做你的作业,如:

NSString *filterIconName = NSImageNameSmartBadgeTemplate; 

或者只是使用直接的名字:

[NSImage imageNamed:NSImageNameSmartBadgeTemplate] 

你只能看到在公共头名的声明: extern NSString * const PeanutButter。当苹果定义了另一个文件中的字符串,其值可以是任何东西:

NSString * const PeanutButter = @"Jelly"; 

苹果还可以改变字符串的值,就应该认为有必要的,而且你的代码将继续作为长期的工作,因为只有你请参考名称。

+0

没错!谢谢 – pickwick 2011-12-25 21:00:44