为什么我无法加载位于资源目​​录中的图像?

ok4*_*404 2 xcode objective-c nsimage nsbundle asset-catalog

我正在尝试构建一个简单的屏幕保护程序。我做的第一件事是使用返回 nil 值的方法从资产目录加载图像[NSImage imagedNamed:],这意味着它找不到图像。当我尝试使用该方法直接从包中加载图像时

[[NSBundle mainBundle] URLForImageResource:]

我也得到一个零值。我不明白为什么会发生这种情况。该图像位于资产目录中,并且在项目设置中我已将其设置为捆绑资源。

Jay*_*Jay 5

可以按名称访问资产目录中的图像,但不能使用以下imageNamed:方法NSImage-

相反,您可以在包中查询特定名称的图像资源,例如,要在请求图像的类的包中查找图像,您可以:

NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSImage *myImage = [bundle imageForResource:@"MyImageName"];  
Run Code Online (Sandbox Code Playgroud)

其中MyImageName是指您在资产目录中为图像分配的名称。