如何更改objective-c中的方法调度表?
作为一个实际示例,在UIView中,当设置setNeedsDisplay时调用drawRect。我希望第一次调用与后续更新不同的drawRect例程。例如,我希望drawRect第一次调用drawRectFirstTime,然后drawRect调用drawRectSubsequentUpdate进行后续的setNeedsDisplay 在Objective-C中应该如何实现这一点?从我的头顶:如何更改objective-c中的方法调度表?,objective-c,iphone,Objective C,Iphone,作为一个实际示例,在UIView中,当设置setNeedsDisplay时调用drawRect。我希望第一次调用与后续更新不同的drawRect例程。例如,我希望drawRect第一次调用drawRectFirstTime,然后drawRect调用drawRectSubsequentUpdate进行后续的setNeedsDisplay 在Objective-C中应该如何实现这一点?从我的头顶: - (void)drawRect:(NSRect)rect { static BOOL firs
- (void)drawRect:(NSRect)rect
{
static BOOL first = YES;
if (first == NO)
{
[self drawRectSubsequentUpdate:rect];
} else {
[self drawRectFirstTime:rect];
first = NO
}
}
从我的头顶:
- (void)drawRect:(NSRect)rect
{
static BOOL first = YES;
if (first == NO)
{
[self drawRectSubsequentUpdate:rect];
} else {
[self drawRectFirstTime:rect];
first = NO
}
}
这仅适用于一个UIView对象。我想OP想要一个对所有对象都有效的解决方案,而不仅仅是第一个。需求越复杂,解决方案就越复杂。谢谢stefanB。对不起,这不是我要找的。询问如何修改分派表的全部目的是避免在drawRect中执行if-else检查。这只适用于一个UIView对象。我想OP想要一个对所有对象都有效的解决方案,而不仅仅是第一个。需求越复杂,解决方案就越复杂。谢谢stefanB。对不起,这不是我要找的。询问如何修改分派表的全部目的是避免在drawRect中执行if-else检查。