可可 - 问题与使用一个NSBundle此代码
题
有人建议我用这行代码从我的资源文件夹/项目包调用图片。我还看到它被精确地使用这样的许多不同的网站上的教程。
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后立即实例;随后,可可将在适当的时候释放的情况下我。见内存管理编程指南了解更多信息
不隶属于 StackOverflow