Методы init UIColor возвращают UIColor *, а не id, как в большинстве классов, поэтому вам придется назначить его UIColor, а не вашему подклассу, чтобы избежать предупреждения.

аюсь создать подкласс UIColor, и я не могу понять, что не так.

В моем PColor.h

#import <Foundation/Foundation.h>
@interface PColor : UIColor {
    BOOL isAvailable;
    int colorId;
}
@property (nonatomic, assign) BOOL isAvailable;
@property (nonatomic, assign) int colorId;
@end

... и в моем PColor.m

#import "PColor.h"

@implementation PColor
@synthesize isAvailable;
@synthesize colorId;
@end

После создания объекта PColor я получаю:

//warning: incompatible Objective-C types initializing 'struct UIColor *', expected 'struct PColor *'
PColor *pcolor = [[PColor alloc] initWithHue:1 saturation:0 brightness:0 alpha:1];

Я что-то пропустил? Заранее спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос