我有这个简单的 Shape 类:
形状.h
#import <Foundation/Foundation.h>
@interface Shape : NSObject
-(id)initWithColor:(UIColor *)color;
+(instancetype)shapeWithColor:(UIColor *)color;
@end
和形状.m
#import "Shape.h"
@interface Shape ()
@property (nonatomic, strong) UIColor *color;
@end
@implementation Shape
-(id)init
{
return [self initWithColor:[UIColor whiteColor]];
}
-(id)initWithColor:(UIColor *)color
{
self = [super init];
if (self)
{
_color = color;
}
return self;
}
+(instancetype)shapeWithColor:(UIColor *)color
{
return [[self alloc] initWithColor:color]; // I get the warning here
}
@end
在便利构造函数的 return 语句中,我收到以下警告:
不兼容的指针类型将“UIColor *”发送到“CIColor *”类型的参数
我在这里做错了什么?我知道我可以写return [[Shape alloc] initWithColor:color];
,但在这种情况下,如果我使用Shape
而不是,我会给我的子类带来问题self
,对吧?