我的 iOS 应用程序中有一个UIControl
子类(我使用的是 iOS 4.3),子类的一部分是一个名为“setButtonColor:(UIColor)bc”的方法。每当我从我的代码中调用此方法时,它都可以正常工作……但前提是我使用了像 greenColor 或 redColor 这样的内置颜色。如果我使用“ colorWithRed:green:blue:alpha
,”来制作我自己的颜色,它会在控制台中崩溃并显示以下消息:
-[UIDeviceRGBColor set]: message sent to deallocated instance 0x4e61560
这是 setButtonColor: 方法:
-(void)setButtonColor:(UIColor *)bc{
buttonColor = bc;
[self setNeedsDisplay];
}
如果我删除setNeedsDisplay
,它不会崩溃,但按钮颜色不会像预期的那样改变。如果有人对为什么会发生这种情况有任何见解,我将不胜感激,如果您需要更多详细信息,请询问。
编辑:我只是稍微研究了一下。在我的 -drawRect 方法中,我调用 [buttonColor set]。通过注释掉它,它不再崩溃,但同样,它也不会改变按钮的颜色。
提前致谢,
thekmc