我无法使用 imageNamed 但 initWithContentsOfFile 创建 NSImage
Posted
技术标签:
【中文标题】我无法使用 imageNamed 但 initWithContentsOfFile 创建 NSImage【英文标题】:I cannot create NSImage with imageNamed but initWithContentsOfFile 【发布时间】:2013-03-05 10:36:50 【问题描述】:使用以下代码:
NSString *imageString = [[NSBundle mainBundle] pathForResource:@"logo64x64" ofType:@"png"];
NSImage *testImage = [[NSImage imageNamed:@"logo64X64"] retain];
NSImage *testImage2 = [[NSImage alloc] initWithContentsOfFile:imageString];
testImage
是 nil 但 testImage2
是 NSImage
实例。我不知道代码有什么问题。我确定我可以在包的资源目录中找到logo64x64.png
和logo64x64@2x.png
。我也尝试过imageNamed:@"logo64X64.png"
,但仍然为零。
有人可以帮忙吗?
【问题讨论】:
【参考方案1】:试试
[NSImage imageNamed:@"logo64x64"];
而不是
[NSImage imageNamed:@"logo64X64"];
请注意,在成功的代码中,您使用了小写的x
,而在失败的代码中,您使用了大写的X
(logo64X64
)。 NSBundle
区分大小写,即使底层 HFS+ 文件系统仅保留大小写。 (NSImage
的+imageNamed:
方法使用NSBundle
定位资源)。
【讨论】:
非常感谢。为我的粗心感到羞耻。然后好像是not a real question
:) 哈哈
不错的观察。第一眼没看懂。以上是关于我无法使用 imageNamed 但 initWithContentsOfFile 创建 NSImage的主要内容,如果未能解决你的问题,请参考以下文章
UIImage imageNamed 不使用 xcode 4.4 显示图像
UIImage + NSCache 与 [UIImage imageNamed:]