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

All*_*Hsu 2 macos objective-c nsimage nsbundle

使用以下代码:

NSString *imageString = [[NSBundle mainBundle] pathForResource:@"logo64x64" ofType:@"png"];
NSImage *testImage = [[NSImage imageNamed:@"logo64X64"] retain];
NSImage *testImage2 = [[NSImage alloc] initWithContentsOfFile:imageString];
Run Code Online (Sandbox Code Playgroud)

testImage是零而是testImage2一个NSImage实例.我不知道代码有什么问题.我敢肯定,我可以找到logo64x64.pnglogo64x64@2x.png在包中的资源目录.我也试过imageNamed:@"logo64X64.png"但仍然没有.

有人可以帮忙吗?

NSG*_*God 10

尝试

[NSImage imageNamed:@"logo64x64"];
Run Code Online (Sandbox Code Playgroud)

而不是

[NSImage imageNamed:@"logo64X64"];
Run Code Online (Sandbox Code Playgroud)

请注意,在成功的代码中,您使用了小写x,而在失败的代码中,您使用了大写X(logo64X64).NSBundle区分大小写,即使基础HFS +文件系统仅保留大小写.(NSImage+imageNamed:方法用于NSBundle定位资源).