打印文件到NSImage无法正常工作(可可)

时间:2009-10-29 20:10:38

标签: cocoa macos nsimage

这可能是一个n00b问题,所以我提前道歉。我第一次使用NSImage,基本上我需要简单地拍摄我的Resources文件夹中的图片,并在单击按钮时将其显示在NSView / NSImageWell中。

NSImage *image = [[NSImage alloc] initWithContentsOfFile:@"tiles.PNG"];   
if ( [image isValid] ) {  
 NSImageView *view = [[NSImageView alloc] init];  
 [selection setImage:image];  
 [selection setImageScaling:NSScaleProportionally];  
}  
else {   
--- This line of code always activates meaning my image isn't valid     
}  

我唯一的猜测是我的图像文件路径错误,我已经查看了正确的方法来访问它。另一个猜测是我的代码错了。有人熟悉这个吗?谢谢!

2 个答案:

答案 0 :(得分:3)

我使用iPhone更多地使用 lot ,但initWithContentsOfFile似乎需要一个完整/相对路径,我认为tile.PNG无法实现。

我会使用类方法imageNamed:(NSString *)name,它会为你搜索你的包。

答案 1 :(得分:0)

您应该使用NSBundleManger来定位图片,如下所示:

NSBundle *mb=[NSBundle mainBundle];
NSString *fp=[mb pathForResource:@"titles" ofType:@"PNG"];
UIImage *img=[UIImage imageWithContentsOfFile:fp];

这样你就不必自己搞乱内部路径了。否则,您必须拥有相对于最终构建产品的路径,这很难创建和维护。