ios - 返回 uicolors 数组的类别

标签 ios objective-c objective-c-category

我有以下类别扩展 UIColor :

.h

#import <UIKit/UIKit.h>

@interface UIColor (Colors)
- (NSArray *)reds;
@end

.m
#import "UIColor+Colors.h"

@implementation UIColor (Colors)

- (NSArray *)reds {
    return [[NSArray alloc] initWithObjects:[UIColor colorWithRed:1.0/255.0 green:50.0/255.0 blue:98.0/255.0 alpha:1],[UIColor colorWithRed:1.0/255.0f green:37.0f/255.0f blue:75.0f/255.0f alpha:1],[UIColor colorWithRed:1.0/255.0 green:1.0/255.0 blue:52.0/255.0 alpha:1],[UIColor colorWithRed:90.0/255.0 green:13.0/255.0 blue:1.0/255.0 alpha:1],[UIColor colorWithRed:53.0/255.0 green:6.0/255.0 blue:1.0/255.0 alpha:1], nil];
}

@end

然后在 View Controller 中,我试图做这样的事情:[cell setBackgroundColor:[UIColor reds][0]];知道我做错了什么吗?

最佳答案

我认为最可能的问题是函数 reds必须是类方法才能调用 reds在类里面。所以是这样的:

。H

@interface UIColor (Colors)
   +(NSArray *)reds;
@end

.m
@implementation UIColor (Colors)

+(NSArray *)reds {
    return @[[UIColor colorWithRed:1.0/255.0 green:50.0/255.0 blue:98.0/255.0 alpha:1],
             [UIColor colorWithRed:1.0/255.0f green:37.0f/255.0f blue:75.0f/255.0f alpha:1],
             [UIColor colorWithRed:1.0/255.0 green:1.0/255.0 blue:52.0/255.0 alpha:1],
             [UIColor colorWithRed:90.0/255.0 green:13.0/255.0 blue:1.0/255.0 alpha:1],
             [UIColor colorWithRed:53.0/255.0 green:6.0/255.0 blue:1.0/255.0 alpha:1]];
}

@end

所以基本上是 +而不是 - .如果您使用 -它是一个实例方法,因此您必须实例化 UIColor 的实例才能调用 reds .

关于ios - 返回 uicolors 数组的类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27789731/

相关文章:

ios - 无法识别的选择器发送到类运行时错误

ios - 架构、业务对象、iOS 的干净实现

ios - 不同语言的 iPad 应用程序

ios - 适用于 iOS 的谷歌 Admob。真正的广告何时以及如何出现?

iOS:使用自定义 UITableViewCell 还是使用 Cell viewWithTag?

ios - 使用AVFoundation扫描PDF417条码

ios - 对于关联对象键, "static char const * const"比 "static const char"有什么优势?

iphone - iOS、iPhone、iPad (OpenGL ES) 是否支持 PBuffer?

objective-c - 如何在 ios 中定义 2x2 数组?

objective-c - 为在 Objective-C 中实现特定协议(protocol)的类创建一个类别?