我有一个类方法,我想在下面执行这段代码。问题是在类方法中你不能使用像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”方法。
这将是本文开头的代码方法。它将从视图中删除所有其他圆形实例。
类方法对我来说似乎最合乎逻辑,因为我没有在圆形对象上执行该方法,但它会影响我其他类中的所有对象。
答案 0 :(得分:3)
有一个调用self.view
的类方法没有意义。该类没有view
,并且无法知道您的意思是哪个实例。你为什么要在类方法中这样做?将其移动到实例。如果你有一个共享的单例实例,那么类方法可以引用它,但这通常是一个坏主意,如果可能的话应该避免(因为它将你的类绑定到单例)。