0

我创建了一个包含“customColor”代码的类,我想在我的代码中实现它,这样我就可以输入buttonOne.backgroundColor = [UIColor customColor].

在 .h 文件中,我有

+ (UIColor*) customColor;

在 .m 文件中,我有

+ (UIColor*) customColor {
    return [UIColor colorWithRed:0.643 green:0.643 blue:0.643 alpha:1];
}

但是当我转到“ViewController.m”并输入

buttonOne.backgroundColor = [UIColor customColor]

我收到一条错误消息

选择器没有已知的类方法customColor

我已经导入了 .h 文件。我错过了一步吗?

4

1 回答 1

4

基本上,您正在尝试创建一个类别,但没有正确地向编译器声明这是UIColor. 以下是如何创建类别的示例:


将新的目录文件创建为新文件Cocoa Touch>> Objective-C category

我命名了我的例子UIColor+CustomColorCatagory

UIColor+CustomColorCatagory.h中,将其更改为:

#import <UIKit/UIKit.h>

@interface UIColor (CustomColorCatagory)   //This line is one of the most important ones - it tells the complier your extending the normal set of methods on UIColor
+ (UIColor *)customColor;

@end

UIColor+CustomColorCatagory.m中,将其更改为:

#import "UIColor+CustomColorCatagory.h"

@implementation UIColor (CustomColorCatagory)
+ (UIColor *)customColor {
    return [UIColor colorWithRed:0.643 green:0.643 blue:0.643 alpha:1];
}
@end

然后在你想使用这个方法的地方,#import "UIColor+CustomColorCatagory.h" 简单地添加:self.view.backgroundColor = [UIColor customColor];

于 2013-10-19T20:36:30.503 回答