在课堂上使用自我方法

时间:2012-04-19 15:53:40

标签: objective-c ios class

我有一个类方法,我想在下面执行这段代码。问题是在类方法中你不能使用像self.view这样的东西。所以我有点卡在这里我发现了一些关于使用[self class]的东西,但我真的不明白如何在我的代码中使用它。

for (UIView *view in [self.view subviews]) 
    {
        if([view isKindOfClass:[Circle class]]) {

            [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationCurveLinear animations:^{
                view.alpha = 0;
                view.frame = CGRectMake(self.view.frame.size.width/2-35, self.view.frame.size.height/2-35, 70, 70);
            } completion:nil];

            [view performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:0.4];
        } else {
            //
        }
    }

更新信息

我有一个Circle课程。 在那个班级我有这个方法

- (IBAction)playerTap:(id)sender {


    NSString *numberString;
    numberString = [NSString stringWithFormat:@"%i",indexNumber+1];

    if (indexNumber < 14)
    {


    if ([label.text isEqualToString:numberString]) 
    {
    [UIView animateWithDuration:0.1 animations:^{


        self.transform = CGAffineTransformMakeScale(1.2, 1.2);

    } completion:^(BOOL finished) {

       [UIView animateWithDuration:0.05 animations:^{
           self.transform = CGAffineTransformIdentity;
           self.alpha = 0.2;

       } completion:nil];

    }];

    ++indexNumber;
    } 
    } else {

        self.alpha = 0.2;

        [NUMViewController gameHasEnded];

    }

}

当indexNumber(一个静态变量)达到一定量时,我想要在我的NUMViewController类中执行一个方法。 I.E. “gameHasEnded”方法。

这将是本文开头的代码方法。它将从视图中删除所有其他圆形实例。

类方法对我来说似乎最合乎逻辑,因为我没有在圆形对象上执行该方法,但它会影响我其他类中的所有对象。

1 个答案:

答案 0 :(得分:3)

有一个调用self.view的类方法没有意义。该类没有view,并且无法知道您的意思是哪个实例。你为什么要在类方法中这样做?将其移动到实例。如果你有一个共享的单例实例,那么类方法可以引用它,但这通常是一个坏主意,如果可能的话应该避免(因为它将你的类绑定到单例)。