如何更改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

作为一个实际示例,在UIView中,当设置setNeedsDisplay时调用drawRect。我希望第一次调用与后续更新不同的drawRect例程。例如,我希望drawRect第一次调用drawRectFirstTime,然后drawRect调用drawRectSubsequentUpdate进行后续的setNeedsDisplay

在Objective-C中应该如何实现这一点?

从我的头顶:

- (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检查。