这可能是一个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
}
我唯一的猜测是我的图像文件路径错误,我已经查看了正确的方法来访问它。另一个猜测是我的代码错了。有人熟悉这个吗?谢谢!
答案 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];
这样你就不必自己搞乱内部路径了。否则,您必须拥有相对于最终构建产品的路径,这很难创建和维护。