2011-12-25 7 views
2

NSImageのドキュメントには、+[NSImage imageNamed:]を使用してすぐに利用できる標準イメージが多数掲載されています。それらはNSImage class referenceに記載されています。AppKitイメージテンプレート定数を使用するとnullが返されます

ただし、次のコードを読み込もうとすると(null)が返ってきますが、その結果はNSImageNameSmartBadgeTemplateに限定されません。コードは、プログラムのバンドル内のイメージの名前が与えられたときに期待通りに機能します。何かご意見は?画像を識別する文字列の

NSString *filterIconName = @"NSImageNameSmartBadgeTemplate"; 
_icon = [NSImage imageNamed:filterIconName]; 
NSLog(@"icon = %@", _icon); 
+0

これは10.7未満であることを忘れました – pickwick

答えて

6

内容は必ずしも名文字列のと同じではありません。

NSString *filterIconName = NSImageNameSmartBadgeTemplate; 

それとも直接名前を使用します:

[NSImage imageNamed:NSImageNameSmartBadgeTemplate] 

あなたは唯一の公共ヘッダーに名前の宣言を見ることができますが、このように、を使用して割り当てをしたいです: extern NSString * const PeanutButter。彼らはそれを考える必要があり、必要に応じて

NSString * const PeanutButter = @"Jelly"; 

Appleはまた、文字列の値を変更することができ、あなたのコードは、あなただけ限り、引き続き機能します:Appleは別のファイル内の文字列を定義する場合、値は何でもかまいません名前を参照してください。

+0

右です!ありがとう – pickwick

関連する問題