重现步骤:
创建一个新的 Xcode 工作区 (WorkspaceTest)。
创建一个名为“One”的单视图项目。
在工作区(不是项目)中,创建一个名为“Shared”的组。在该文件夹中创建一个名为 UIColor+Hex 的类别:
。H:
@interface UIColor (Hex)
+ (UIColor *)colorWithHexString:(NSString*)hexString;
@end
米:
@implementation UIColor (Hex)
+ (UIColor *)colorWithHexString:(NSString *)hexString {
//implementation here
}
@end
转到“一个”目标构建设置并将其添加到标题搜索路径:
/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 文件中。我还需要做什么?