再現する手順:
新しい Xcode ワークスペース (WorkspaceTest) を作成します。
「One」というシングルビュー プロジェクトを作成します。
ワークスペース (プロジェクトではありません) で、「Shared」というグループを作成します。そのフォルダーに、UIColor+Hex というカテゴリを作成します。
.h:
@interface UIColor (Hex)
+ (UIColor *)colorWithHexString:(NSString*)hexString;
@end
.m:
@implementation UIColor (Hex)
+ (UIColor *)colorWithHexString:(NSString *)hexString {
//implementation here
}
@end
「1 つの」ターゲット ビルド設定に移動し、ヘッダー検索パスにこれを追加します。
/Users/me/iOS/test/WorkspaceTest/Shared
デフォルトの ViewController.h に移動し、これを追加します。
#import "UIColor+Hex.h"
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor colorWithHexString:@"ff0000"];
}
プロジェクトは正常にコンパイルされます。つまり、UIColor+Hex.h が見つかりました。
ただし、実行すると次のようになります。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[UIColor colorWithHexString:]: unrecognized selector sent to class 0x107db8c60
このメソッドは UIColor+Hex.m ファイルにあります。他に何をする必要がありますか?