我无法使用imageNamed创建NSImage,而是使用initWithContentsOfFile

时间:2013-03-05 10:36:50

标签: objective-c macos nsimage nsbundle

使用以下代码:

NSString *imageString = [[NSBundle mainBundle] pathForResource:@"logo64x64" ofType:@"png"];
NSImage *testImage = [[NSImage imageNamed:@"logo64X64"] retain];
NSImage *testImage2 = [[NSImage alloc] initWithContentsOfFile:imageString];

testImage为零,但testImage2NSImage个实例。我不知道代码有什么问题。我确信我可以在捆绑包的资源目录中找到logo64x64.pnglogo64x64@2x.png。我也试过imageNamed:@"logo64X64.png",但仍然没有。

任何人都可以提供帮助吗?

1 个答案:

答案 0 :(得分:10)

尝试

[NSImage imageNamed:@"logo64x64"];

而不是

[NSImage imageNamed:@"logo64X64"];

请注意,在成功的代码中,您使用了小写x,而在失败的代码中,您使用了大写Xlogo64X64)。 NSBundle区分大小写,即使基础HFS +文件系统仅保留大小写。 (NSImage的{​​{1}}方法使用+imageNamed:来查找资源。