什么是应用程序Bundle和Resources文件夹

时间:2013-12-08 16:01:26

标签: objective-c macos nsimageview

我的问题是关于项目中的应用程序包。我正在阅读有关这方面的内容并且能够理解一些基本的东西(我不是母语为英语的人)。我可以理解resources folder用于保存将在项目中使用的文件,例如媒体文件(图像,音频,视频等),应该在application bundle中进行识别。

那么,如果我想在我的项目中使用图像和其他资源,那又有什么意义呢?在我的other related question中,我无法通过引用NSImage imageNamed:来使用它们。

我使用了以下内容但没有成功加载我的文件:

  • NSBundle方法
  • imageNamed:@"string"带/不带文件扩展名
  • 图片位于资源文件夹

我正在学习CocoaObjective-C,当我想要创建ImageIcon或QImage时,这与C++Java不同。

1 个答案:

答案 0 :(得分:1)

我可能没有完全理解这个问题,所以如果我错了,请纠正我。我认为问题与您图片的目标会员资格或您在代码中检索图片的方式有关。

将图像添加到项目目标将在编译时适当地复制资源。要将图像添加到目标,请在文件导航器中选择它,然后显示实用程序面板。在“工具”面板上,选择文件检查器选项卡。查找目标成员资格部分,并确保为所需目标选择了图像:

Xcode 5 Target Membership

您的意思是您不能使用NSImage imageNamed:方法来检索资源吗?如果是这样,您可以检索这样的资源(来自主资源包):

NSString *imageName = [[NSBundle mainBundle] pathForResource:@"image1" ofType:@"png"];
NSImage *imageObj = [[NSImage alloc] initWithContentsOfFile:imageName];

看起来你已经拥有a good answer to your other related question