0

我有一个类方法,我想在下面执行这段代码。问题是在类方法中不能使用 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 类中的方法。IE 中的“gameHasEnded”方法。

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

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

4

1 回答 1

3

拥有一个调用self.view. 该类没有view,并且无法知道您的意思是哪个实例。你为什么在类方法中这样做?将其移至实例。如果您有一个共享的单例实例,则类方法可以引用它,但这通常是一个坏主意,应尽可能避免(因为它将您的类与单例联系在一起)。

于 2012-04-19T15:55:41.177 回答