1

これはおそらく未熟な質問なので、事前にお詫び申し上げます。初めて 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     
}  

私の唯一の推測は、画像ファイルへのパスが間違っていることであり、それにアクセスする正しい方法をすべて調べました。もう1つの推測は、コードが間違っているということです。これに詳しい人はいますか?ありがとう!

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 に答える