有人建议我用这行代码从我的资源文件夹/项目包调用图片。我还看到它被精确地使用这样的许多不同的网站上的教程。

NSBundle *mb=[NSBundle mainBundle];


NSString *fp=[mb pathForResource:@"topimage" ofType:@"PNG"];


NSImage *image=[NSImage initWithContentsOfFile:fp];

然而,我收到以下警告:

  

NSImage中可能不响应+ initWithContentsOfFile +

有NSImage中的文档显示initWithContentsOfFile实际上,应该工作的方法。什么可能我要在这里失踪?

有帮助吗?

解决方案

您错过了+alloc

NSImage* image = [[NSImage alloc] initWithContentsOfFile:fp];

您也可以使用+imageNamed:,其从主束提取的图像。

NSImage* image = [NSImage imageNamed:@"topImage.png"];

其他提示

initWithContentsOfFile:是一个实例的方法,但你发送那个消息到NSImage中类。您需要将其发送到一个实例,具体地说,就是新分配的实例。

这就是alloc进来,它是该分配一个实例,该实例您然后立即发送init…消息(如达伦显示)的一类方法。

不要忘记释放的情况下,当你用它做。我一般自动释放INITING后立即实例;随后,可可将在适当的时候释放的情况下我。见内存管理编程指南了解更多信息

scroll top