1

这可能是一个 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     
}  

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

4

2 回答 2

3

我在 iPhone 上工作得更多,但 initWithContentsOfFile 似乎需要一个完整/相对路径,我认为 tiles.PNG 无法满足。

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

于 2009-10-29T20:52:05.027 回答
0

您应该NSBundleManger像这样使用来定位图像:

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

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

于 2009-10-29T21:30:09.473 回答