Obj-C选择器在财产上无法识别?

时间:2009-12-26 19:10:21

标签: objective-c cocoa

我在尝试设置属性时收到NSObject doesNotRecognizeSelector错误,但我不确定原因。

错误发生在setWithNSColor的第一行。我有点困惑,如何才能识别出合理合成的属性。

@interface ScopeColor : NSObject {
NSString *colorIntegerString;
float redColor;
float greenColor;
float blueColor;
NSString *name;
}

@property (readwrite, assign) NSString *colorIntegerString;
@property (readwrite, assign) float redColor;
@property (readwrite, assign) float greenColor;
@property (readwrite, assign) float blueColor;
@property (readwrite, assign) NSString *name;

-(void)setWithNSColor:(NSColor *)inColor
{
    self.redColor=[inColor redComponent];
    self.greenColor=[inColor greenComponent];
    self.blueColor=[inColor blueComponent];
}

2 个答案:

答案 0 :(得分:3)

你确定它是你的班级而不是NSColor会引发异常吗?如果NSColor对象不属于要求redComponent的NSCalibratedRGBColorSpace或NSDeviceRGBColorSpace,则会引发异常。

答案 1 :(得分:0)

您是否在包含的代码之外的某处合成了红色,绿色和蓝色?此外,原始值(例如浮点数)不需要assign关键字。